Merge remote-tracking branch 'Upstream/master'
This commit is contained in:
@@ -414,10 +414,17 @@ Regarding sprites & sounds, you must credit the artist and possibly the codebase
|
||||
Do not add any of the following in a Pull Request or risk getting the PR closed:
|
||||
* National Socialist Party of Germany content, National Socialist Party of Germany related content, or National Socialist Party of Germany references
|
||||
* Code where one line of code is split across mutiple lines (except for multiple, separate strings and comments; in those cases, existing longer lines must not be split up)
|
||||
* Code adding, removing, or updating the availability of alien races/species/human mutants without prior approval. Pull requests attempting to add or remove features from said races/species/mutants require prior approval as well.
|
||||
|
||||
Just because something isn't on this list doesn't mean that it's acceptable. Use common sense above all else.
|
||||
|
||||
## Content requiring prior approval
|
||||
Certain types of changes may require prior approval from maintainers. This currently includes:
|
||||
|
||||
* Code adding, removing, or updating the availability of alien races/species/human mutants. This includes pull requests attempting to add or remove features from said races/species/mutants. (Requires approval from at least one maintainer)
|
||||
* Code adding, removing, or modifying the functionality of adult-oriented features (such as, but not limited to: vore, genitals, MKUltra, and more). This also includes pull requests attempting to add or remove these features outright. (Requires approval from at least half of the formal maintainer team)
|
||||
|
||||
The above content requires approval from the specified amount of maintainers prior to PR creation. Seeking approval must be done via a @Maintainer ping in a relevant development/code or staff channel on the Discord, otherwise it will be considered insufficient. If a PR contains any of the above content, but the creator does not have sufficient approval prior to the PR's creation, then the PR may be closed by any maintainer, at any time, for any reason.
|
||||
|
||||
## A word on Git
|
||||
Yes, we know that the files have a tonne of mixed Windows and Linux line endings. Attempts to fix this have been met with less than stellar success, and as such we have decided to give up caring until there comes a time when it matters.
|
||||
|
||||
|
||||
@@ -18,9 +18,7 @@
|
||||
/obj/item/mining_scanner,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/card/id/mining,
|
||||
/obj/item/gps/mining{
|
||||
tracking = 0
|
||||
},
|
||||
/obj/item/gps/mining,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/powered/golem_ship)
|
||||
"d" = (
|
||||
@@ -34,9 +32,7 @@
|
||||
/obj/item/mining_scanner,
|
||||
/obj/item/flashlight/lantern,
|
||||
/obj/item/card/id/mining,
|
||||
/obj/item/gps/mining{
|
||||
tracking = 0
|
||||
},
|
||||
/obj/item/gps/mining,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/powered/golem_ship)
|
||||
"e" = (
|
||||
@@ -156,9 +152,7 @@
|
||||
"x" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/reagentgrinder,
|
||||
/obj/item/gps/mining{
|
||||
tracking = 0
|
||||
},
|
||||
/obj/item/gps/mining,
|
||||
/turf/open/floor/mineral/titanium/purple,
|
||||
/area/ruin/powered/golem_ship)
|
||||
"z" = (
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/unpowered)
|
||||
"d" = (
|
||||
/turf/open/openspace/icemoon,
|
||||
/turf/open/transparent/openspace/icemoon,
|
||||
/area/icemoon/surface/outdoors)
|
||||
"e" = (
|
||||
/obj/item/clothing/suit/hooded/explorer,
|
||||
|
||||
@@ -71,8 +71,9 @@
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"di" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/closed/wall,
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"dl" = (
|
||||
/obj/structure/cable{
|
||||
@@ -304,12 +305,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"kH" = (
|
||||
@@ -523,6 +518,9 @@
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/sign/warning/enginesafety{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"qv" = (
|
||||
@@ -543,7 +541,13 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/closed/wall,
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"qN" = (
|
||||
/obj/structure/table/reinforced,
|
||||
@@ -848,6 +852,10 @@
|
||||
/obj/machinery/igniter{
|
||||
id = "TEG_igniter"
|
||||
},
|
||||
/mob/living/carbon/monkey{
|
||||
name = "Mumkey Jones"
|
||||
},
|
||||
/obj/item/clothing/head/hardhat/atmos,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"An" = (
|
||||
@@ -882,14 +890,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "TEG - North Center";
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"AX" = (
|
||||
@@ -1042,12 +1042,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"EI" = (
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"EL" = (
|
||||
/turf/closed/wall,
|
||||
/area/engine/engineering)
|
||||
@@ -1082,6 +1076,11 @@
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Fs" = (
|
||||
/obj/structure/rack,
|
||||
/obj/item/pipe_dispenser,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"FG" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 10
|
||||
@@ -1218,11 +1217,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Jd" = (
|
||||
/obj/machinery/light,
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow,
|
||||
/obj/machinery/atmospherics/pipe/manifold/orange/visible,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
@@ -1312,15 +1306,6 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"LD" = (
|
||||
@@ -1372,6 +1357,7 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Nz" = (
|
||||
@@ -1429,12 +1415,10 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/airalarm{
|
||||
dir = 1;
|
||||
locked = 0;
|
||||
pixel_y = -22
|
||||
},
|
||||
/obj/machinery/light,
|
||||
/obj/structure/sign/nanotrasen{
|
||||
pixel_y = -32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Pz" = (
|
||||
@@ -1452,6 +1436,9 @@
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/sign/warning/nosmoking{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"PK" = (
|
||||
@@ -1522,12 +1509,11 @@
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"Rl" = (
|
||||
/obj/machinery/atmospherics/components/binary/pump{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Rz" = (
|
||||
@@ -1602,7 +1588,13 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"TE" = (
|
||||
/obj/structure/closet/crate/internals,
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
lootcount = 2;
|
||||
name = "2maintenance loot spawner"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"TH" = (
|
||||
@@ -1648,6 +1640,10 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow,
|
||||
/obj/machinery/camera{
|
||||
c_tag = "TEG - North Center";
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Uq" = (
|
||||
@@ -1671,18 +1667,15 @@
|
||||
/area/engine/engineering)
|
||||
"UT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible,
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"UY" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/airalarm{
|
||||
pixel_y = 23
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Vi" = (
|
||||
@@ -1811,10 +1804,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
dir = 4;
|
||||
pixel_y = -27
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"YC" = (
|
||||
@@ -1837,9 +1826,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"YP" = (
|
||||
/obj/structure/rack,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
|
||||
/obj/item/pipe_dispenser,
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"YQ" = (
|
||||
@@ -1878,7 +1868,9 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Zu" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
@@ -1887,13 +1879,6 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/sign/warning/securearea{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ZC" = (
|
||||
@@ -2170,7 +2155,7 @@ iD
|
||||
MP
|
||||
MP
|
||||
MP
|
||||
ij
|
||||
MP
|
||||
yX
|
||||
qn
|
||||
qn
|
||||
@@ -2251,11 +2236,11 @@ ME
|
||||
QS
|
||||
uB
|
||||
Ok
|
||||
Ok
|
||||
Ok
|
||||
di
|
||||
di
|
||||
Ok
|
||||
Bz
|
||||
Zu
|
||||
lI
|
||||
Wc
|
||||
Ok
|
||||
zG
|
||||
@@ -2307,8 +2292,8 @@ iP
|
||||
wk
|
||||
go
|
||||
fF
|
||||
EI
|
||||
EI
|
||||
UT
|
||||
UT
|
||||
sn
|
||||
qc
|
||||
Nh
|
||||
@@ -2367,7 +2352,7 @@ KA
|
||||
KA
|
||||
Ok
|
||||
dZ
|
||||
bO
|
||||
Zu
|
||||
ev
|
||||
tl
|
||||
qb
|
||||
@@ -2477,7 +2462,7 @@ IP
|
||||
Zs
|
||||
sD
|
||||
Jd
|
||||
EL
|
||||
YP
|
||||
YG
|
||||
AX
|
||||
PK
|
||||
@@ -2505,7 +2490,7 @@ SX
|
||||
ou
|
||||
vG
|
||||
Zv
|
||||
di
|
||||
Xe
|
||||
qJ
|
||||
Lw
|
||||
Xe
|
||||
@@ -2595,7 +2580,7 @@ PK
|
||||
Dv
|
||||
Dv
|
||||
bO
|
||||
YP
|
||||
sH
|
||||
As
|
||||
yN
|
||||
yN
|
||||
@@ -2651,7 +2636,7 @@ eh
|
||||
zx
|
||||
XW
|
||||
ST
|
||||
Ok
|
||||
Fs
|
||||
MP
|
||||
tw
|
||||
tw
|
||||
|
||||
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
@@ -2134,14 +2134,11 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/port)
|
||||
"adM" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Abandoned External Airlock"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/fore)
|
||||
"adN" = (
|
||||
/obj/effect/turf_decal/loading_area{
|
||||
@@ -2160,11 +2157,16 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/ai_monitored/storage/satellite)
|
||||
"adO" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Satellite External Airlock";
|
||||
req_one_access_txt = "32;19"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat/atmos)
|
||||
"adP" = (
|
||||
/obj/machinery/status_display/ai,
|
||||
@@ -2513,6 +2515,9 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/security/execution/education)
|
||||
"aeD" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
@@ -2598,13 +2603,20 @@
|
||||
},
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/maintenance/starboard/fore)
|
||||
/area/space/nearstation)
|
||||
"aeL" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Abandoned External Airlock"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating/airless,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/starboard/fore)
|
||||
"aeM" = (
|
||||
/obj/machinery/photocopier,
|
||||
@@ -5704,13 +5716,6 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/courtroom)
|
||||
"ajI" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Abandoned External Airlock"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
@@ -6935,7 +6940,6 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/closet/emcloset/anchored,
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
@@ -9658,12 +9662,19 @@
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/medical/genetics)
|
||||
"aqp" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/solar/port/fore)
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/port/fore)
|
||||
"aqq" = (
|
||||
/obj/machinery/status_display/ai{
|
||||
pixel_x = -32
|
||||
@@ -12462,12 +12473,18 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/bridge)
|
||||
"auN" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/solar/starboard/fore)
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard/fore)
|
||||
"auO" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable{
|
||||
@@ -64779,11 +64796,15 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/hallway/primary/starboard)
|
||||
"bZG" = (
|
||||
/obj/structure/sign/warning/vacuum/external{
|
||||
pixel_y = 32
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Abandoned External Airlock"
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/fore)
|
||||
"bZH" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
@@ -64902,9 +64923,18 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/starboard)
|
||||
"bZP" = (
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Prison External Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/prison)
|
||||
"bZQ" = (
|
||||
/obj/structure/closet/l3closet/janitor,
|
||||
/obj/structure/window/reinforced,
|
||||
@@ -67690,11 +67720,6 @@
|
||||
},
|
||||
/area/ai_monitored/turret_protected/ai)
|
||||
"ceA" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Satellite External Airlock";
|
||||
req_one_access_txt = "32;19"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -69610,15 +69635,12 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmos)
|
||||
"chO" = (
|
||||
/obj/structure/sign/warning/vacuum/external,
|
||||
/turf/closed/wall,
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/turret_protected/aisat/atmos)
|
||||
"chP" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/obj/structure/sign/warning/vacuum/external,
|
||||
/turf/closed/wall,
|
||||
/area/ai_monitored/turret_protected/aisat/atmos)
|
||||
"chQ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -69697,12 +69719,19 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"chU" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/solar/port/aft)
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/port/aft)
|
||||
"chW" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock/hatch{
|
||||
@@ -71343,16 +71372,9 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"ckJ" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard/aft)
|
||||
"ckK" = (
|
||||
@@ -71763,16 +71785,9 @@
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"clx" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/port/aft)
|
||||
@@ -74873,6 +74888,9 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
@@ -74942,6 +74960,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/disposal)
|
||||
"crg" = (
|
||||
@@ -76410,14 +76431,12 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/solar/starboard/aft)
|
||||
"ctO" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/maintenance/disposal)
|
||||
"ctP" = (
|
||||
/obj/structure/cable{
|
||||
@@ -76438,16 +76457,9 @@
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/solar/starboard/aft)
|
||||
"ctS" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/port/fore)
|
||||
@@ -77673,12 +77685,18 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/disposal)
|
||||
"cwb" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/solar/starboard/aft)
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard/aft)
|
||||
"cwc" = (
|
||||
/obj/machinery/atmospherics/components/binary/pump/on,
|
||||
/obj/machinery/airlock_sensor/incinerator_atmos{
|
||||
@@ -77774,9 +77792,9 @@
|
||||
/area/maintenance/starboard/aft)
|
||||
"cwk" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/turf/open/floor/plating/asteroid/airless,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"cwl" = (
|
||||
/obj/structure/cable{
|
||||
@@ -77954,13 +77972,6 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard)
|
||||
"cwD" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/starboard)
|
||||
"cwE" = (
|
||||
@@ -78131,6 +78142,9 @@
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/disposal)
|
||||
"cwQ" = (
|
||||
@@ -78244,6 +78258,9 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
@@ -78301,6 +78318,9 @@
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/disposal)
|
||||
"cxh" = (
|
||||
@@ -78340,6 +78360,9 @@
|
||||
/area/maintenance/disposal)
|
||||
"cxj" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
@@ -78387,17 +78410,21 @@
|
||||
},
|
||||
/area/maintenance/port/fore)
|
||||
"cxp" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/disposal)
|
||||
"cxq" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
/area/maintenance/fore)
|
||||
"cxr" = (
|
||||
/obj/structure/sign/poster/contraband/clown,
|
||||
/turf/closed/wall/rust,
|
||||
@@ -78498,6 +78525,7 @@
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
@@ -83809,16 +83837,9 @@
|
||||
},
|
||||
/area/maintenance/starboard)
|
||||
"cMH" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Solar Maintenance";
|
||||
req_access_txt = "10; 13"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/solars/starboard/fore)
|
||||
"cMI" = (
|
||||
@@ -84486,13 +84507,6 @@
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"cUD" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "Prison External Airlock";
|
||||
req_access_txt = "2"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
@@ -84510,6 +84524,10 @@
|
||||
icon_state = "wood-broken"
|
||||
},
|
||||
/area/security/vacantoffice)
|
||||
"dky" = (
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"dlg" = (
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/wood,
|
||||
@@ -84661,6 +84679,12 @@
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/turf/closed/mineral/random/labormineral,
|
||||
/area/space/nearstation)
|
||||
"fAn" = (
|
||||
/obj/structure/sign/warning/vacuum/external{
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"fXq" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
@@ -84902,6 +84926,11 @@
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/hallway/secondary/entry)
|
||||
"jGN" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/aft)
|
||||
"jHJ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/general/visible{
|
||||
dir = 9
|
||||
@@ -85108,6 +85137,16 @@
|
||||
/obj/structure/sign/poster/ripped,
|
||||
/turf/closed/wall,
|
||||
/area/crew_quarters/fitness/recreation)
|
||||
"lqz" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/starboard)
|
||||
"lKu" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/reagent_containers/food/drinks/soda_cans/thirteenloko,
|
||||
@@ -85165,6 +85204,9 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/research)
|
||||
"mKj" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/security/execution/education)
|
||||
"mKp" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -85531,6 +85573,12 @@
|
||||
icon_state = "wood-broken4"
|
||||
},
|
||||
/area/maintenance/port/fore)
|
||||
"yaV" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/space/nearstation)
|
||||
"ydo" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -99344,9 +99392,9 @@ bTK
|
||||
bVs
|
||||
hNk
|
||||
bXG
|
||||
abp
|
||||
cZm
|
||||
bZG
|
||||
aeU
|
||||
fAn
|
||||
aeU
|
||||
aeU
|
||||
aeU
|
||||
@@ -99603,7 +99651,7 @@ cTF
|
||||
bXH
|
||||
cUD
|
||||
bZP
|
||||
aeU
|
||||
dky
|
||||
coy
|
||||
aeU
|
||||
aeU
|
||||
@@ -99856,19 +99904,19 @@ aaG
|
||||
aez
|
||||
cIj
|
||||
aeB
|
||||
cZm
|
||||
mKj
|
||||
aez
|
||||
aez
|
||||
aez
|
||||
cko
|
||||
cko
|
||||
cko
|
||||
aeU
|
||||
aeU
|
||||
aeU
|
||||
aeU
|
||||
aeU
|
||||
cnS
|
||||
chU
|
||||
aeU
|
||||
cnS
|
||||
aUz
|
||||
aeU
|
||||
aeu
|
||||
@@ -100311,9 +100359,9 @@ aeu
|
||||
aeU
|
||||
aeU
|
||||
aeU
|
||||
aeU
|
||||
ctH
|
||||
aqp
|
||||
aeU
|
||||
ctH
|
||||
aeu
|
||||
aeu
|
||||
aeu
|
||||
@@ -112385,7 +112433,7 @@ aaa
|
||||
aaa
|
||||
aeU
|
||||
aUz
|
||||
aeu
|
||||
adH
|
||||
adH
|
||||
adH
|
||||
adH
|
||||
@@ -112642,8 +112690,8 @@ aaa
|
||||
aaa
|
||||
acm
|
||||
aeU
|
||||
aeU
|
||||
adQ
|
||||
cxq
|
||||
alN
|
||||
chj
|
||||
aoc
|
||||
@@ -112899,7 +112947,7 @@ aeR
|
||||
aeR
|
||||
aes
|
||||
aes
|
||||
aes
|
||||
bZG
|
||||
adM
|
||||
alO
|
||||
amL
|
||||
@@ -113156,7 +113204,7 @@ aaa
|
||||
aaa
|
||||
acm
|
||||
aaa
|
||||
aaa
|
||||
adH
|
||||
adH
|
||||
adH
|
||||
adQ
|
||||
@@ -120597,9 +120645,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aeU
|
||||
aeK
|
||||
baH
|
||||
baH
|
||||
afb
|
||||
baH
|
||||
baH
|
||||
@@ -124306,9 +124354,9 @@ cpb
|
||||
crf
|
||||
cnu
|
||||
cnu
|
||||
cnu
|
||||
cko
|
||||
aeu
|
||||
aeu
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -124564,7 +124612,7 @@ cxg
|
||||
cxj
|
||||
ctO
|
||||
cxp
|
||||
aeU
|
||||
yaV
|
||||
ciQ
|
||||
aeU
|
||||
aaa
|
||||
@@ -124820,7 +124868,7 @@ cnu
|
||||
cnd
|
||||
cnu
|
||||
cnu
|
||||
cxq
|
||||
cnu
|
||||
cwk
|
||||
cxu
|
||||
aeU
|
||||
@@ -125028,7 +125076,7 @@ bAP
|
||||
bCf
|
||||
bhQ
|
||||
bhQ
|
||||
bAM
|
||||
jGN
|
||||
bGH
|
||||
bOc
|
||||
bHZ
|
||||
@@ -126354,9 +126402,9 @@ bzG
|
||||
bzG
|
||||
aeu
|
||||
aeu
|
||||
aeU
|
||||
ckz
|
||||
cwb
|
||||
aeU
|
||||
ckz
|
||||
aeU
|
||||
aUz
|
||||
aeU
|
||||
@@ -129376,9 +129424,9 @@ aaQ
|
||||
aeo
|
||||
aeo
|
||||
acm
|
||||
acm
|
||||
acK
|
||||
acm
|
||||
bkd
|
||||
lqz
|
||||
bkd
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -129611,9 +129659,9 @@ aeu
|
||||
aeu
|
||||
aeu
|
||||
aeu
|
||||
aeU
|
||||
cLM
|
||||
auN
|
||||
aeU
|
||||
cLM
|
||||
aeu
|
||||
aeu
|
||||
aeu
|
||||
|
||||
@@ -44383,7 +44383,6 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/hallway/primary/aft)
|
||||
"bFB" = (
|
||||
/obj/structure/reagent_dispensers/keg/aphro/strong,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/wood{
|
||||
icon_state = "wood-broken5"
|
||||
@@ -80286,6 +80285,11 @@
|
||||
},
|
||||
/turf/open/space/basic,
|
||||
/area/engine/engineering)
|
||||
"eCO" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/starboard/aft)
|
||||
"eDP" = (
|
||||
/obj/effect/turf_decal/trimline/blue/filled/corner{
|
||||
dir = 8
|
||||
@@ -82039,6 +82043,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
/area/crew_quarters/kitchen)
|
||||
"vDO" = (
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"vDW" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -107579,7 +107587,7 @@ aaA
|
||||
abY
|
||||
ayy
|
||||
acw
|
||||
acw
|
||||
vDO
|
||||
acw
|
||||
acw
|
||||
aeG
|
||||
@@ -135198,7 +135206,7 @@ bPp
|
||||
ccJ
|
||||
clR
|
||||
bQh
|
||||
clN
|
||||
eCO
|
||||
bPp
|
||||
bQh
|
||||
bYx
|
||||
|
||||
@@ -0,0 +1,768 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"b" = (
|
||||
/turf/closed/indestructible{
|
||||
desc = "A wall with alien alloy plating.";
|
||||
icon = 'icons/turf/walls/abductor_wall.dmi';
|
||||
icon_state = "abductor";
|
||||
name = "alien wall";
|
||||
smooth = 5
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/fakespace,
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien22"
|
||||
},
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/structure/closet/abductor,
|
||||
/turf/open/floor/plating/abductor,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/structure/bed/abductor,
|
||||
/turf/open/floor/plating/abductor,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/structure/bed/abductor,
|
||||
/turf/open/floor/plating/abductor2,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/structure/closet/abductor,
|
||||
/turf/open/floor/plating/abductor2,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/turf/closed/indestructible/fakeglass,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/turf/open/floor/plating/abductor,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/turf/open/floor/plating/abductor2,
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/turf/open/floor/light/colour_cycle/dancefloor_a,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/turf/open/floor/light/colour_cycle/dancefloor_b,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"x" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plastitanium,
|
||||
/turf/open/floor/plating/abductor2,
|
||||
/area/mafia)
|
||||
"z" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/fakespace,
|
||||
/area/mafia)
|
||||
"B" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien2"
|
||||
},
|
||||
/area/mafia)
|
||||
"D" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien15"
|
||||
},
|
||||
/area/mafia)
|
||||
"E" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien7"
|
||||
},
|
||||
/area/mafia)
|
||||
"F" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien12"
|
||||
},
|
||||
/area/mafia)
|
||||
"G" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien17"
|
||||
},
|
||||
/area/mafia)
|
||||
"H" = (
|
||||
/turf/open/space/basic,
|
||||
/area/mafia)
|
||||
"I" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien24"
|
||||
},
|
||||
/area/mafia)
|
||||
"J" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien18"
|
||||
},
|
||||
/area/mafia)
|
||||
"K" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien11"
|
||||
},
|
||||
/area/mafia)
|
||||
"L" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien14"
|
||||
},
|
||||
/area/mafia)
|
||||
"M" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien4"
|
||||
},
|
||||
/area/mafia)
|
||||
"N" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien21"
|
||||
},
|
||||
/area/mafia)
|
||||
"P" = (
|
||||
/turf/closed/indestructible/abductor,
|
||||
/area/mafia)
|
||||
"Q" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien5"
|
||||
},
|
||||
/area/mafia)
|
||||
"S" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien3"
|
||||
},
|
||||
/area/mafia)
|
||||
"U" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien23"
|
||||
},
|
||||
/area/mafia)
|
||||
"V" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien13"
|
||||
},
|
||||
/area/mafia)
|
||||
"W" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien20"
|
||||
},
|
||||
/area/mafia)
|
||||
"Y" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien8"
|
||||
},
|
||||
/area/mafia)
|
||||
"Z" = (
|
||||
/turf/closed/indestructible/abductor{
|
||||
icon_state = "alien10"
|
||||
},
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
g
|
||||
z
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
H
|
||||
i
|
||||
z
|
||||
k
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
z
|
||||
i
|
||||
i
|
||||
i
|
||||
W
|
||||
L
|
||||
F
|
||||
F
|
||||
F
|
||||
Z
|
||||
P
|
||||
i
|
||||
i
|
||||
i
|
||||
h
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
W
|
||||
L
|
||||
Z
|
||||
G
|
||||
l
|
||||
q
|
||||
b
|
||||
r
|
||||
o
|
||||
E
|
||||
L
|
||||
Z
|
||||
P
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
N
|
||||
o
|
||||
r
|
||||
p
|
||||
m
|
||||
q
|
||||
x
|
||||
r
|
||||
n
|
||||
x
|
||||
q
|
||||
l
|
||||
B
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
U
|
||||
n
|
||||
r
|
||||
b
|
||||
b
|
||||
q
|
||||
b
|
||||
r
|
||||
b
|
||||
b
|
||||
q
|
||||
m
|
||||
M
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
W
|
||||
G
|
||||
x
|
||||
r
|
||||
r
|
||||
x
|
||||
q
|
||||
x
|
||||
r
|
||||
x
|
||||
q
|
||||
q
|
||||
x
|
||||
E
|
||||
P
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
N
|
||||
l
|
||||
x
|
||||
b
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
b
|
||||
x
|
||||
o
|
||||
B
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
j
|
||||
m
|
||||
q
|
||||
q
|
||||
q
|
||||
x
|
||||
t
|
||||
t
|
||||
t
|
||||
x
|
||||
r
|
||||
r
|
||||
r
|
||||
n
|
||||
S
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
j
|
||||
b
|
||||
x
|
||||
b
|
||||
x
|
||||
x
|
||||
t
|
||||
u
|
||||
t
|
||||
x
|
||||
x
|
||||
b
|
||||
x
|
||||
b
|
||||
S
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
j
|
||||
n
|
||||
r
|
||||
r
|
||||
r
|
||||
x
|
||||
t
|
||||
t
|
||||
t
|
||||
x
|
||||
q
|
||||
q
|
||||
q
|
||||
m
|
||||
S
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
U
|
||||
o
|
||||
x
|
||||
b
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
b
|
||||
x
|
||||
l
|
||||
M
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
I
|
||||
J
|
||||
x
|
||||
q
|
||||
q
|
||||
x
|
||||
r
|
||||
x
|
||||
q
|
||||
x
|
||||
r
|
||||
r
|
||||
x
|
||||
Y
|
||||
Q
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
N
|
||||
m
|
||||
q
|
||||
b
|
||||
b
|
||||
r
|
||||
b
|
||||
q
|
||||
b
|
||||
b
|
||||
r
|
||||
n
|
||||
B
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
U
|
||||
l
|
||||
q
|
||||
x
|
||||
n
|
||||
r
|
||||
x
|
||||
q
|
||||
m
|
||||
x
|
||||
r
|
||||
o
|
||||
M
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
I
|
||||
D
|
||||
K
|
||||
J
|
||||
o
|
||||
r
|
||||
b
|
||||
q
|
||||
l
|
||||
Y
|
||||
D
|
||||
K
|
||||
Q
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
z
|
||||
i
|
||||
i
|
||||
i
|
||||
I
|
||||
D
|
||||
V
|
||||
V
|
||||
V
|
||||
K
|
||||
Q
|
||||
i
|
||||
i
|
||||
i
|
||||
z
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
k
|
||||
z
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
z
|
||||
v
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
b
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,675 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"c" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
max_integrity = 99999;
|
||||
name = "Maintenance"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/locked,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/structure/closet/cabinet{
|
||||
anchored = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/structure/closet/cabinet{
|
||||
anchored = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/turf/closed/indestructible/fakeglass,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"s" = (
|
||||
/turf/open/floor/fakespace,
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/turf/open/floor/plasteel/solarpanel,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/turf/open/floor/plasteel/solarpanel,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
g
|
||||
h
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
k
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
a
|
||||
a
|
||||
j
|
||||
a
|
||||
j
|
||||
a
|
||||
a
|
||||
d
|
||||
d
|
||||
i
|
||||
h
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
i
|
||||
a
|
||||
a
|
||||
j
|
||||
a
|
||||
l
|
||||
q
|
||||
a
|
||||
r
|
||||
o
|
||||
a
|
||||
j
|
||||
a
|
||||
a
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
d
|
||||
a
|
||||
o
|
||||
r
|
||||
p
|
||||
m
|
||||
q
|
||||
p
|
||||
r
|
||||
n
|
||||
p
|
||||
q
|
||||
l
|
||||
a
|
||||
d
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
d
|
||||
a
|
||||
n
|
||||
r
|
||||
a
|
||||
a
|
||||
q
|
||||
a
|
||||
r
|
||||
a
|
||||
a
|
||||
q
|
||||
m
|
||||
a
|
||||
d
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
a
|
||||
a
|
||||
p
|
||||
r
|
||||
r
|
||||
p
|
||||
q
|
||||
p
|
||||
r
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
a
|
||||
a
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
a
|
||||
l
|
||||
p
|
||||
a
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
a
|
||||
p
|
||||
o
|
||||
a
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
j
|
||||
m
|
||||
q
|
||||
q
|
||||
q
|
||||
p
|
||||
s
|
||||
t
|
||||
s
|
||||
p
|
||||
r
|
||||
r
|
||||
r
|
||||
n
|
||||
j
|
||||
e
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
e
|
||||
a
|
||||
a
|
||||
p
|
||||
a
|
||||
p
|
||||
p
|
||||
t
|
||||
u
|
||||
t
|
||||
p
|
||||
p
|
||||
a
|
||||
p
|
||||
a
|
||||
a
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
j
|
||||
n
|
||||
r
|
||||
r
|
||||
r
|
||||
p
|
||||
s
|
||||
t
|
||||
s
|
||||
p
|
||||
q
|
||||
q
|
||||
q
|
||||
m
|
||||
j
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
a
|
||||
o
|
||||
p
|
||||
a
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
a
|
||||
p
|
||||
l
|
||||
a
|
||||
i
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
a
|
||||
a
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
r
|
||||
p
|
||||
q
|
||||
p
|
||||
r
|
||||
r
|
||||
p
|
||||
a
|
||||
a
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
f
|
||||
d
|
||||
a
|
||||
m
|
||||
q
|
||||
a
|
||||
a
|
||||
r
|
||||
a
|
||||
q
|
||||
a
|
||||
a
|
||||
r
|
||||
n
|
||||
a
|
||||
d
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
d
|
||||
a
|
||||
l
|
||||
q
|
||||
p
|
||||
n
|
||||
r
|
||||
p
|
||||
q
|
||||
m
|
||||
p
|
||||
r
|
||||
o
|
||||
a
|
||||
d
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
d
|
||||
a
|
||||
a
|
||||
j
|
||||
a
|
||||
o
|
||||
r
|
||||
a
|
||||
q
|
||||
l
|
||||
a
|
||||
j
|
||||
a
|
||||
a
|
||||
d
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
h
|
||||
i
|
||||
d
|
||||
d
|
||||
a
|
||||
a
|
||||
j
|
||||
a
|
||||
j
|
||||
a
|
||||
a
|
||||
d
|
||||
e
|
||||
d
|
||||
h
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
k
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
v
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,724 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"b" = (
|
||||
/turf/closed/wall/mineral/iron,
|
||||
/area/mafia)
|
||||
"c" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/turf/closed/indestructible/fakedoor,
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/carpet/red,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/carpet/red,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 1
|
||||
},
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 4
|
||||
},
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plastitanium,
|
||||
/turf/open/space/basic,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/turf/open/floor/carpet/red,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 8
|
||||
},
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/turf/open/floor/carpet/royalblack,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"D" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 4
|
||||
},
|
||||
/area/mafia)
|
||||
"E" = (
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 4
|
||||
},
|
||||
/area/mafia)
|
||||
"H" = (
|
||||
/obj/structure/closet/cabinet{
|
||||
anchored = 1
|
||||
},
|
||||
/turf/open/floor/carpet/red,
|
||||
/area/mafia)
|
||||
"J" = (
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 1
|
||||
},
|
||||
/area/mafia)
|
||||
"M" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 8
|
||||
},
|
||||
/area/mafia)
|
||||
"N" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel/chapel,
|
||||
/area/mafia)
|
||||
"O" = (
|
||||
/turf/open/floor/plasteel/chapel,
|
||||
/area/mafia)
|
||||
"P" = (
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/plasteel/chapel,
|
||||
/area/mafia)
|
||||
"Q" = (
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 8
|
||||
},
|
||||
/area/mafia)
|
||||
"X" = (
|
||||
/turf/open/floor/plasteel/chapel{
|
||||
dir = 1
|
||||
},
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
g
|
||||
h
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
k
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
b
|
||||
b
|
||||
j
|
||||
b
|
||||
j
|
||||
b
|
||||
b
|
||||
d
|
||||
d
|
||||
i
|
||||
h
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
i
|
||||
b
|
||||
b
|
||||
j
|
||||
b
|
||||
l
|
||||
q
|
||||
b
|
||||
X
|
||||
Q
|
||||
b
|
||||
j
|
||||
b
|
||||
b
|
||||
d
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
c
|
||||
d
|
||||
b
|
||||
J
|
||||
r
|
||||
p
|
||||
m
|
||||
q
|
||||
p
|
||||
E
|
||||
N
|
||||
p
|
||||
q
|
||||
l
|
||||
b
|
||||
d
|
||||
c
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
d
|
||||
b
|
||||
D
|
||||
O
|
||||
b
|
||||
b
|
||||
q
|
||||
b
|
||||
r
|
||||
b
|
||||
b
|
||||
q
|
||||
m
|
||||
b
|
||||
d
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
b
|
||||
b
|
||||
p
|
||||
X
|
||||
r
|
||||
p
|
||||
q
|
||||
p
|
||||
O
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
b
|
||||
b
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
b
|
||||
l
|
||||
p
|
||||
b
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
b
|
||||
p
|
||||
Q
|
||||
b
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
j
|
||||
m
|
||||
q
|
||||
q
|
||||
q
|
||||
p
|
||||
t
|
||||
t
|
||||
t
|
||||
p
|
||||
X
|
||||
r
|
||||
E
|
||||
N
|
||||
j
|
||||
e
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
e
|
||||
b
|
||||
b
|
||||
p
|
||||
b
|
||||
p
|
||||
p
|
||||
t
|
||||
u
|
||||
t
|
||||
p
|
||||
p
|
||||
b
|
||||
p
|
||||
b
|
||||
b
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
j
|
||||
n
|
||||
r
|
||||
E
|
||||
O
|
||||
p
|
||||
t
|
||||
t
|
||||
t
|
||||
p
|
||||
q
|
||||
q
|
||||
q
|
||||
m
|
||||
j
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
b
|
||||
o
|
||||
p
|
||||
b
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
b
|
||||
p
|
||||
l
|
||||
b
|
||||
i
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
d
|
||||
b
|
||||
b
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
X
|
||||
p
|
||||
q
|
||||
p
|
||||
E
|
||||
O
|
||||
p
|
||||
b
|
||||
b
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
f
|
||||
d
|
||||
b
|
||||
m
|
||||
q
|
||||
b
|
||||
b
|
||||
E
|
||||
b
|
||||
q
|
||||
b
|
||||
b
|
||||
X
|
||||
M
|
||||
b
|
||||
d
|
||||
d
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
b
|
||||
c
|
||||
c
|
||||
d
|
||||
b
|
||||
l
|
||||
q
|
||||
p
|
||||
n
|
||||
r
|
||||
p
|
||||
q
|
||||
m
|
||||
p
|
||||
E
|
||||
P
|
||||
b
|
||||
d
|
||||
c
|
||||
c
|
||||
b
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
d
|
||||
b
|
||||
b
|
||||
j
|
||||
b
|
||||
o
|
||||
O
|
||||
b
|
||||
q
|
||||
H
|
||||
b
|
||||
j
|
||||
b
|
||||
b
|
||||
d
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
h
|
||||
i
|
||||
d
|
||||
d
|
||||
b
|
||||
b
|
||||
j
|
||||
b
|
||||
j
|
||||
b
|
||||
b
|
||||
d
|
||||
e
|
||||
d
|
||||
h
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
k
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
v
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,976 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"c" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
max_integrity = 99999;
|
||||
name = "Maintenance"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/locked,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/grass/fakebasalt,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/grass/fakebasalt,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 9
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end{
|
||||
icon_state = "trimline_end_fill";
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/turf/closed/indestructible/fakeglass,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/turf/open/floor/grass/fakebasalt,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 9
|
||||
},
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"s" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"w" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"x" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"y" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end{
|
||||
icon_state = "trimline_end_fill";
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"z" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"A" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"B" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end{
|
||||
icon_state = "trimline_end_fill";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"C" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"D" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 10
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner{
|
||||
icon_state = "trimline_corner_fill";
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"E" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner{
|
||||
icon_state = "trimline_corner_fill";
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"F" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"G" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"H" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"I" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 6
|
||||
},
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"J" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner{
|
||||
icon_state = "trimline_corner_fill";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"K" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end{
|
||||
icon_state = "trimline_end_fill";
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet{
|
||||
desc = "It's a storage unit. For mining stuff. Y'know.";
|
||||
icon_state = "mining";
|
||||
name = "miner equipment locker"
|
||||
},
|
||||
/obj/item/clothing/under/rank/cargo/miner/lavaland,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"L" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"M" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 10
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"N" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner{
|
||||
icon_state = "trimline_corner_fill";
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"O" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner{
|
||||
icon_state = "trimline_corner_fill";
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"P" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"Q" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"R" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"S" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/end{
|
||||
icon_state = "trimline_end_fill";
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"T" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"U" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line,
|
||||
/obj/effect/turf_decal/trimline/brown/filled/corner{
|
||||
icon_state = "trimline_corner_fill";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"V" = (
|
||||
/obj/effect/turf_decal/trimline/brown/filled/line{
|
||||
icon_state = "trimline_fill";
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"W" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"X" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"Y" = (
|
||||
/turf/closed/indestructible{
|
||||
icon = 'icons/turf/walls/reinforced_wall.dmi';
|
||||
icon_state = "r_wall";
|
||||
name = "reinforced wall"
|
||||
},
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
g
|
||||
h
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
k
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
Y
|
||||
Y
|
||||
j
|
||||
Y
|
||||
j
|
||||
Y
|
||||
Y
|
||||
d
|
||||
d
|
||||
i
|
||||
h
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
i
|
||||
Y
|
||||
Y
|
||||
j
|
||||
Y
|
||||
l
|
||||
q
|
||||
Y
|
||||
s
|
||||
H
|
||||
Y
|
||||
j
|
||||
Y
|
||||
Y
|
||||
d
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
c
|
||||
d
|
||||
Y
|
||||
r
|
||||
M
|
||||
p
|
||||
m
|
||||
q
|
||||
p
|
||||
w
|
||||
A
|
||||
p
|
||||
q
|
||||
l
|
||||
Y
|
||||
d
|
||||
c
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
d
|
||||
Y
|
||||
L
|
||||
N
|
||||
Y
|
||||
Y
|
||||
q
|
||||
Y
|
||||
x
|
||||
Y
|
||||
Y
|
||||
q
|
||||
m
|
||||
Y
|
||||
d
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
Y
|
||||
Y
|
||||
p
|
||||
O
|
||||
P
|
||||
p
|
||||
q
|
||||
p
|
||||
y
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
Y
|
||||
Y
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
Y
|
||||
l
|
||||
p
|
||||
Y
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
Y
|
||||
p
|
||||
K
|
||||
Y
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
j
|
||||
m
|
||||
q
|
||||
q
|
||||
q
|
||||
p
|
||||
q
|
||||
u
|
||||
q
|
||||
p
|
||||
B
|
||||
C
|
||||
C
|
||||
J
|
||||
j
|
||||
e
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
e
|
||||
Y
|
||||
Y
|
||||
p
|
||||
Y
|
||||
p
|
||||
p
|
||||
t
|
||||
R
|
||||
X
|
||||
p
|
||||
p
|
||||
Y
|
||||
p
|
||||
Y
|
||||
Y
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
j
|
||||
n
|
||||
C
|
||||
C
|
||||
P
|
||||
p
|
||||
q
|
||||
W
|
||||
q
|
||||
p
|
||||
q
|
||||
q
|
||||
q
|
||||
m
|
||||
j
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
Y
|
||||
o
|
||||
p
|
||||
Y
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
Y
|
||||
p
|
||||
l
|
||||
Y
|
||||
i
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
d
|
||||
Y
|
||||
Y
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
S
|
||||
p
|
||||
q
|
||||
p
|
||||
B
|
||||
D
|
||||
p
|
||||
Y
|
||||
Y
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
f
|
||||
d
|
||||
Y
|
||||
m
|
||||
q
|
||||
Y
|
||||
Y
|
||||
T
|
||||
Y
|
||||
q
|
||||
Y
|
||||
Y
|
||||
E
|
||||
G
|
||||
Y
|
||||
d
|
||||
d
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
Y
|
||||
c
|
||||
c
|
||||
d
|
||||
Y
|
||||
l
|
||||
q
|
||||
p
|
||||
Q
|
||||
U
|
||||
p
|
||||
q
|
||||
m
|
||||
p
|
||||
F
|
||||
I
|
||||
Y
|
||||
d
|
||||
c
|
||||
c
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
d
|
||||
Y
|
||||
Y
|
||||
j
|
||||
Y
|
||||
z
|
||||
V
|
||||
Y
|
||||
q
|
||||
l
|
||||
Y
|
||||
j
|
||||
Y
|
||||
Y
|
||||
d
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
h
|
||||
i
|
||||
d
|
||||
d
|
||||
Y
|
||||
Y
|
||||
j
|
||||
Y
|
||||
j
|
||||
Y
|
||||
Y
|
||||
d
|
||||
e
|
||||
d
|
||||
h
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
k
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
v
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
Y
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,658 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"b" = (
|
||||
/turf/open/indestructible/reebe_void,
|
||||
/area/mafia)
|
||||
"c" = (
|
||||
/turf/open/indestructible/reebe_void/spawning/lattices,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/indestructible/reebe_void/spawning/lattices,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/closed/wall/clockwork,
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/window/reinforced/clockwork/fulltile,
|
||||
/obj/structure/grille/ratvar,
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/bedsheet/orange,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/obj/structure/chair/brass{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/structure/chair/brass,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/structure/chair/brass{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/obj/structure/chair/brass,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/structure/chair/brass{
|
||||
icon_state = "brass_chair";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/item/toy/plush/plushvar,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/structure/window/reinforced/clockwork/fulltile,
|
||||
/obj/structure/grille/ratvar,
|
||||
/turf/open/floor/clockwork/reebe,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/obj/item/toy/plush/plushvar,
|
||||
/turf/open/indestructible/reebe_void/spawning/lattices,
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
d
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
q
|
||||
d
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
e
|
||||
e
|
||||
p
|
||||
e
|
||||
p
|
||||
e
|
||||
e
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
p
|
||||
p
|
||||
e
|
||||
e
|
||||
i
|
||||
f
|
||||
e
|
||||
f
|
||||
i
|
||||
e
|
||||
e
|
||||
p
|
||||
p
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
p
|
||||
i
|
||||
f
|
||||
h
|
||||
g
|
||||
f
|
||||
h
|
||||
f
|
||||
g
|
||||
h
|
||||
f
|
||||
i
|
||||
p
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
g
|
||||
f
|
||||
e
|
||||
e
|
||||
f
|
||||
e
|
||||
f
|
||||
e
|
||||
e
|
||||
f
|
||||
g
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
e
|
||||
h
|
||||
f
|
||||
j
|
||||
h
|
||||
j
|
||||
h
|
||||
j
|
||||
h
|
||||
j
|
||||
f
|
||||
h
|
||||
e
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
i
|
||||
h
|
||||
e
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
e
|
||||
h
|
||||
i
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
p
|
||||
g
|
||||
f
|
||||
f
|
||||
k
|
||||
h
|
||||
f
|
||||
f
|
||||
o
|
||||
h
|
||||
n
|
||||
f
|
||||
f
|
||||
g
|
||||
p
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
e
|
||||
h
|
||||
e
|
||||
h
|
||||
h
|
||||
f
|
||||
m
|
||||
f
|
||||
h
|
||||
h
|
||||
e
|
||||
h
|
||||
e
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
p
|
||||
g
|
||||
f
|
||||
f
|
||||
k
|
||||
h
|
||||
f
|
||||
f
|
||||
f
|
||||
h
|
||||
n
|
||||
f
|
||||
f
|
||||
g
|
||||
p
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
i
|
||||
h
|
||||
e
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
h
|
||||
e
|
||||
h
|
||||
i
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
e
|
||||
h
|
||||
f
|
||||
l
|
||||
h
|
||||
l
|
||||
h
|
||||
l
|
||||
h
|
||||
l
|
||||
f
|
||||
h
|
||||
e
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
e
|
||||
g
|
||||
f
|
||||
e
|
||||
e
|
||||
f
|
||||
e
|
||||
f
|
||||
e
|
||||
e
|
||||
f
|
||||
g
|
||||
e
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
p
|
||||
i
|
||||
f
|
||||
h
|
||||
g
|
||||
f
|
||||
h
|
||||
f
|
||||
g
|
||||
h
|
||||
f
|
||||
i
|
||||
p
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
p
|
||||
p
|
||||
e
|
||||
e
|
||||
f
|
||||
i
|
||||
e
|
||||
i
|
||||
f
|
||||
e
|
||||
e
|
||||
p
|
||||
p
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
e
|
||||
e
|
||||
p
|
||||
e
|
||||
p
|
||||
e
|
||||
e
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
d
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
d
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
c
|
||||
c
|
||||
c
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,755 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
max_integrity = 99999;
|
||||
name = "Maintenance"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/locked,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/item/bedsheet/brown,
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/item/bedsheet/green,
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/item/bedsheet/blue,
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/turf/closed/indestructible/fakeglass,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"s" = (
|
||||
/turf/closed/wall/ice,
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/turf/open/floor/holofloor/snow,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/structure/statue/plasma/scientist{
|
||||
anchored = 1
|
||||
},
|
||||
/turf/open/floor/holofloor/snow,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/turf/open/floor/holofloor/snow,
|
||||
/area/mafia)
|
||||
"w" = (
|
||||
/turf/open/lava/plasma,
|
||||
/area/mafia)
|
||||
"x" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
max_integrity = 9999;
|
||||
opacity = 0
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/locked,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"y" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/holofloor/snow,
|
||||
/area/mafia)
|
||||
"z" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/lava/plasma,
|
||||
/area/mafia)
|
||||
"A" = (
|
||||
/obj/machinery/door/airlock/external{
|
||||
max_integrity = 9999
|
||||
},
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/locked,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/mafia)
|
||||
"B" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/lava/plasma,
|
||||
/area/mafia)
|
||||
"C" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/holofloor/snow,
|
||||
/area/mafia)
|
||||
"D" = (
|
||||
/obj/structure/closet/crate/science,
|
||||
/obj/item/clothing/suit/hooded/wintercoat,
|
||||
/obj/item/clothing/shoes/winterboots,
|
||||
/turf/open/floor/holofloor/snow,
|
||||
/area/mafia)
|
||||
"E" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/structure/closet/crate/critter,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner,
|
||||
/obj/item/clothing/shoes/winterboots,
|
||||
/turf/open/lava/plasma,
|
||||
/area/mafia)
|
||||
"F" = (
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"G" = (
|
||||
/obj/item/bedsheet/orange,
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"H" = (
|
||||
/obj/item/bedsheet/black,
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"I" = (
|
||||
/obj/item/bedsheet/red,
|
||||
/obj/structure/bed,
|
||||
/turf/open/floor/holofloor/wood,
|
||||
/area/mafia)
|
||||
"J" = (
|
||||
/turf/open/floor/plating/snowed/smoothed,
|
||||
/area/mafia)
|
||||
"K" = (
|
||||
/turf/closed/indestructible/rock/snow,
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
w
|
||||
w
|
||||
t
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
g
|
||||
h
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
t
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
C
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
s
|
||||
s
|
||||
j
|
||||
s
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
i
|
||||
s
|
||||
s
|
||||
j
|
||||
s
|
||||
H
|
||||
F
|
||||
s
|
||||
t
|
||||
D
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
s
|
||||
d
|
||||
s
|
||||
o
|
||||
F
|
||||
p
|
||||
m
|
||||
q
|
||||
p
|
||||
t
|
||||
y
|
||||
p
|
||||
z
|
||||
E
|
||||
p
|
||||
w
|
||||
t
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
d
|
||||
s
|
||||
m
|
||||
r
|
||||
s
|
||||
s
|
||||
q
|
||||
s
|
||||
t
|
||||
p
|
||||
p
|
||||
z
|
||||
B
|
||||
p
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
s
|
||||
s
|
||||
p
|
||||
r
|
||||
r
|
||||
p
|
||||
q
|
||||
p
|
||||
t
|
||||
p
|
||||
z
|
||||
z
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
s
|
||||
l
|
||||
p
|
||||
s
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
D
|
||||
p
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
j
|
||||
m
|
||||
F
|
||||
q
|
||||
q
|
||||
x
|
||||
J
|
||||
t
|
||||
t
|
||||
p
|
||||
t
|
||||
t
|
||||
t
|
||||
y
|
||||
p
|
||||
w
|
||||
t
|
||||
K
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
e
|
||||
s
|
||||
a
|
||||
p
|
||||
s
|
||||
p
|
||||
p
|
||||
u
|
||||
v
|
||||
t
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
j
|
||||
m
|
||||
F
|
||||
r
|
||||
r
|
||||
A
|
||||
J
|
||||
t
|
||||
t
|
||||
p
|
||||
t
|
||||
t
|
||||
t
|
||||
y
|
||||
p
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
s
|
||||
n
|
||||
p
|
||||
s
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
D
|
||||
p
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
s
|
||||
s
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
r
|
||||
p
|
||||
t
|
||||
p
|
||||
z
|
||||
z
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
f
|
||||
d
|
||||
s
|
||||
m
|
||||
q
|
||||
s
|
||||
s
|
||||
r
|
||||
s
|
||||
t
|
||||
p
|
||||
p
|
||||
z
|
||||
B
|
||||
p
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
a
|
||||
s
|
||||
s
|
||||
d
|
||||
s
|
||||
G
|
||||
F
|
||||
p
|
||||
m
|
||||
r
|
||||
p
|
||||
t
|
||||
y
|
||||
p
|
||||
z
|
||||
E
|
||||
p
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
d
|
||||
s
|
||||
s
|
||||
j
|
||||
s
|
||||
I
|
||||
F
|
||||
s
|
||||
t
|
||||
D
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
t
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
h
|
||||
i
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
j
|
||||
s
|
||||
p
|
||||
p
|
||||
p
|
||||
t
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
k
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
s
|
||||
t
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
C
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
K
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
s
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,690 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"b" = (
|
||||
/obj/structure/closet/cabinet{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/item/reagent_containers/food/snacks/sashimi,
|
||||
/turf/open/floor/carpet/black,
|
||||
/area/mafia)
|
||||
"c" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/turf/closed/wall/mineral/wood{
|
||||
desc = "A door that goes nowhere. How kafkaesque.";
|
||||
icon = 'icons/obj/doors/mineral_doors.dmi';
|
||||
icon_state = "paperframe";
|
||||
name = "Door"
|
||||
},
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/wood,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/carpet/black,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/structure/closet/cabinet{
|
||||
anchored = 1
|
||||
},
|
||||
/obj/item/reagent_containers/food/snacks/sashimi,
|
||||
/turf/open/floor/wood,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/turf/closed/indestructible/fakeglass{
|
||||
icon = 'icons/obj/smooth_structures/paperframes.dmi';
|
||||
icon_state = "paper"
|
||||
},
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/turf/open/floor/wood,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/turf/open/floor/carpet/black,
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/turf/open/floor/plating/beach/sand,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/turf/open/floor/plating/beach/sand,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"B" = (
|
||||
/obj/structure/showcase{
|
||||
density = 0;
|
||||
desc = "Welp, only one way to recover your honour.";
|
||||
icon = 'icons/obj/items_and_weapons.dmi';
|
||||
icon_state = "katana";
|
||||
name = "seppuku katana"
|
||||
},
|
||||
/turf/open/floor/plating/beach/sand,
|
||||
/area/mafia)
|
||||
"S" = (
|
||||
/turf/closed/wall/mineral/wood,
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
g
|
||||
h
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
k
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
S
|
||||
S
|
||||
j
|
||||
S
|
||||
j
|
||||
S
|
||||
S
|
||||
d
|
||||
d
|
||||
i
|
||||
h
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
i
|
||||
S
|
||||
S
|
||||
j
|
||||
S
|
||||
o
|
||||
q
|
||||
S
|
||||
r
|
||||
b
|
||||
S
|
||||
j
|
||||
S
|
||||
S
|
||||
d
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
c
|
||||
d
|
||||
S
|
||||
b
|
||||
r
|
||||
p
|
||||
m
|
||||
q
|
||||
p
|
||||
r
|
||||
n
|
||||
p
|
||||
q
|
||||
o
|
||||
S
|
||||
d
|
||||
c
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
d
|
||||
S
|
||||
n
|
||||
r
|
||||
S
|
||||
S
|
||||
q
|
||||
S
|
||||
r
|
||||
S
|
||||
S
|
||||
q
|
||||
m
|
||||
S
|
||||
d
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
S
|
||||
S
|
||||
p
|
||||
r
|
||||
r
|
||||
p
|
||||
q
|
||||
p
|
||||
r
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
S
|
||||
S
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
S
|
||||
o
|
||||
p
|
||||
S
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
S
|
||||
p
|
||||
b
|
||||
S
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
j
|
||||
m
|
||||
q
|
||||
q
|
||||
q
|
||||
p
|
||||
t
|
||||
t
|
||||
t
|
||||
p
|
||||
r
|
||||
r
|
||||
r
|
||||
n
|
||||
j
|
||||
e
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
e
|
||||
S
|
||||
S
|
||||
p
|
||||
S
|
||||
p
|
||||
p
|
||||
t
|
||||
u
|
||||
B
|
||||
p
|
||||
p
|
||||
S
|
||||
p
|
||||
S
|
||||
S
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
j
|
||||
n
|
||||
r
|
||||
r
|
||||
r
|
||||
p
|
||||
t
|
||||
t
|
||||
t
|
||||
p
|
||||
q
|
||||
q
|
||||
q
|
||||
m
|
||||
j
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
S
|
||||
b
|
||||
p
|
||||
S
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
S
|
||||
p
|
||||
o
|
||||
S
|
||||
i
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
d
|
||||
S
|
||||
S
|
||||
p
|
||||
q
|
||||
q
|
||||
p
|
||||
r
|
||||
p
|
||||
q
|
||||
p
|
||||
r
|
||||
r
|
||||
p
|
||||
S
|
||||
S
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
f
|
||||
d
|
||||
S
|
||||
m
|
||||
q
|
||||
S
|
||||
S
|
||||
r
|
||||
S
|
||||
q
|
||||
S
|
||||
S
|
||||
r
|
||||
n
|
||||
S
|
||||
d
|
||||
d
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
S
|
||||
c
|
||||
c
|
||||
d
|
||||
S
|
||||
o
|
||||
q
|
||||
p
|
||||
n
|
||||
r
|
||||
p
|
||||
q
|
||||
m
|
||||
p
|
||||
r
|
||||
b
|
||||
S
|
||||
d
|
||||
c
|
||||
c
|
||||
S
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
d
|
||||
S
|
||||
S
|
||||
j
|
||||
S
|
||||
b
|
||||
r
|
||||
S
|
||||
q
|
||||
o
|
||||
S
|
||||
j
|
||||
S
|
||||
S
|
||||
d
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
h
|
||||
i
|
||||
d
|
||||
d
|
||||
S
|
||||
S
|
||||
j
|
||||
S
|
||||
j
|
||||
S
|
||||
S
|
||||
d
|
||||
e
|
||||
d
|
||||
h
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
k
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
v
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
S
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,869 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/closed/indestructible/riveted,
|
||||
/area/mafia)
|
||||
"b" = (
|
||||
/obj/structure/closet/syndicate{
|
||||
desc = "A storage closet for syndicate conflict resolution operatives.";
|
||||
name = "red closet"
|
||||
},
|
||||
/obj/item/clothing/under/syndicate/tacticool,
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt,
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"c" = (
|
||||
/turf/closed/wall/rust,
|
||||
/area/mafia)
|
||||
"d" = (
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"e" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"f" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"g" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg3"
|
||||
},
|
||||
/area/mafia)
|
||||
"h" = (
|
||||
/obj/structure/grille/indestructable,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"i" = (
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "platingdmg1"
|
||||
},
|
||||
/area/mafia)
|
||||
"j" = (
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
max_integrity = 99999;
|
||||
name = "Maintenance"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/locked,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"k" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating,
|
||||
/area/mafia)
|
||||
"l" = (
|
||||
/obj/structure/closet/syndicate{
|
||||
desc = "A storage closet for syndicate conflict resolution operatives.";
|
||||
name = "red closet"
|
||||
},
|
||||
/obj/item/clothing/under/syndicate/tacticool,
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"m" = (
|
||||
/obj/structure/closet/syndicate{
|
||||
desc = "A storage closet for syndicate conflict resolution operatives.";
|
||||
name = "red closet"
|
||||
},
|
||||
/obj/item/clothing/under/syndicate/tacticool,
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt,
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"n" = (
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"o" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"p" = (
|
||||
/obj/machinery/door/poddoor/preopen{
|
||||
desc = "When it's time to sleep, the lights will go out. Remember - no one in space can hear you scream.";
|
||||
id = "mafia";
|
||||
max_integrity = 99999;
|
||||
name = "Station Night Shutters"
|
||||
},
|
||||
/obj/effect/spawner/structure/window/plastitanium,
|
||||
/turf/open/space/basic,
|
||||
/area/mafia)
|
||||
"q" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/chair/office{
|
||||
dir = 1;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"r" = (
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"s" = (
|
||||
/turf/open/floor/mineral/plastitanium/red,
|
||||
/area/mafia)
|
||||
"t" = (
|
||||
/turf/open/floor/circuit/red,
|
||||
/area/mafia)
|
||||
"u" = (
|
||||
/obj/effect/baseturf_helper/asteroid,
|
||||
/obj/effect/landmark/mafia/town_center,
|
||||
/obj/structure/chair,
|
||||
/turf/open/floor/circuit/red,
|
||||
/area/mafia)
|
||||
"v" = (
|
||||
/obj/mafia_game_board,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
/area/mafia)
|
||||
"w" = (
|
||||
/turf/closed/indestructible/syndicate,
|
||||
/area/mafia)
|
||||
"x" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/chair/office{
|
||||
dir = 4;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"y" = (
|
||||
/obj/structure/chair/office{
|
||||
dir = 2;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"z" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/chair/office{
|
||||
dir = 2;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"A" = (
|
||||
/obj/structure/chair/office{
|
||||
dir = 8;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"B" = (
|
||||
/obj/structure/chair/office{
|
||||
dir = 4;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"C" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/chair/office{
|
||||
dir = 8;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"E" = (
|
||||
/obj/structure/chair/office{
|
||||
dir = 1;
|
||||
name = "tactical swivel chair"
|
||||
},
|
||||
/turf/open/floor/mineral/plastitanium,
|
||||
/area/mafia)
|
||||
"F" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/closet/syndicate{
|
||||
desc = "A storage closet for syndicate conflict resolution operatives.";
|
||||
name = "red closet"
|
||||
},
|
||||
/obj/item/clothing/under/syndicate/tacticool,
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"G" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/clothing/under/syndicate/tacticool,
|
||||
/obj/structure/closet/syndicate{
|
||||
desc = "A storage closet for syndicate conflict resolution operatives.";
|
||||
name = "red closet"
|
||||
},
|
||||
/obj/item/clothing/under/syndicate/tacticool/skirt,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
"H" = (
|
||||
/obj/effect/turf_decal/tile/red,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/landmark/mafia,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/mafia)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
g
|
||||
h
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
k
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
w
|
||||
w
|
||||
j
|
||||
w
|
||||
j
|
||||
w
|
||||
w
|
||||
d
|
||||
d
|
||||
i
|
||||
h
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
i
|
||||
w
|
||||
w
|
||||
j
|
||||
w
|
||||
b
|
||||
r
|
||||
w
|
||||
o
|
||||
F
|
||||
w
|
||||
j
|
||||
w
|
||||
w
|
||||
d
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
c
|
||||
d
|
||||
w
|
||||
l
|
||||
o
|
||||
p
|
||||
n
|
||||
r
|
||||
p
|
||||
o
|
||||
H
|
||||
p
|
||||
r
|
||||
b
|
||||
w
|
||||
d
|
||||
c
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
d
|
||||
w
|
||||
H
|
||||
o
|
||||
w
|
||||
w
|
||||
r
|
||||
w
|
||||
o
|
||||
w
|
||||
w
|
||||
r
|
||||
n
|
||||
w
|
||||
d
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
w
|
||||
w
|
||||
p
|
||||
o
|
||||
x
|
||||
p
|
||||
B
|
||||
p
|
||||
x
|
||||
p
|
||||
B
|
||||
r
|
||||
p
|
||||
w
|
||||
w
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
w
|
||||
b
|
||||
p
|
||||
w
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
p
|
||||
m
|
||||
w
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
j
|
||||
n
|
||||
r
|
||||
r
|
||||
y
|
||||
p
|
||||
s
|
||||
t
|
||||
s
|
||||
p
|
||||
q
|
||||
o
|
||||
o
|
||||
H
|
||||
j
|
||||
e
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
e
|
||||
w
|
||||
w
|
||||
p
|
||||
w
|
||||
p
|
||||
p
|
||||
t
|
||||
u
|
||||
t
|
||||
p
|
||||
p
|
||||
w
|
||||
p
|
||||
w
|
||||
w
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
j
|
||||
H
|
||||
o
|
||||
o
|
||||
z
|
||||
p
|
||||
s
|
||||
t
|
||||
s
|
||||
p
|
||||
E
|
||||
r
|
||||
r
|
||||
n
|
||||
j
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
w
|
||||
l
|
||||
p
|
||||
w
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
p
|
||||
w
|
||||
p
|
||||
b
|
||||
w
|
||||
i
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
d
|
||||
w
|
||||
w
|
||||
p
|
||||
r
|
||||
A
|
||||
p
|
||||
C
|
||||
p
|
||||
A
|
||||
p
|
||||
C
|
||||
o
|
||||
p
|
||||
w
|
||||
w
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
f
|
||||
d
|
||||
w
|
||||
n
|
||||
r
|
||||
w
|
||||
w
|
||||
o
|
||||
w
|
||||
r
|
||||
w
|
||||
w
|
||||
o
|
||||
H
|
||||
w
|
||||
d
|
||||
d
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
w
|
||||
c
|
||||
c
|
||||
d
|
||||
w
|
||||
b
|
||||
r
|
||||
p
|
||||
H
|
||||
o
|
||||
p
|
||||
r
|
||||
n
|
||||
p
|
||||
o
|
||||
G
|
||||
w
|
||||
d
|
||||
c
|
||||
c
|
||||
w
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
d
|
||||
w
|
||||
w
|
||||
j
|
||||
w
|
||||
F
|
||||
o
|
||||
w
|
||||
r
|
||||
b
|
||||
w
|
||||
j
|
||||
w
|
||||
w
|
||||
d
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
h
|
||||
i
|
||||
d
|
||||
d
|
||||
w
|
||||
w
|
||||
j
|
||||
w
|
||||
j
|
||||
w
|
||||
w
|
||||
d
|
||||
e
|
||||
d
|
||||
h
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
k
|
||||
h
|
||||
d
|
||||
d
|
||||
e
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
h
|
||||
v
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
w
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1244,15 +1244,7 @@
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/starboard/fore)
|
||||
"abM" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard/fore)
|
||||
"abN" = (
|
||||
@@ -23608,22 +23600,9 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"aKB" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"aKC" = (
|
||||
@@ -23645,14 +23624,23 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"aKF" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/sign/warning/vacuum{
|
||||
pixel_x = -32;
|
||||
pixel_y = 32
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"aKG" = (
|
||||
/obj/structure/cable/white{
|
||||
@@ -39608,9 +39596,17 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/atmos)
|
||||
"edA" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/machinery/door/airlock/external{
|
||||
name = "External Airlock";
|
||||
req_access_txt = "13"
|
||||
},
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/starboard/fore)
|
||||
"eew" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/cable{
|
||||
@@ -41988,6 +41984,16 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hydroponics)
|
||||
"saI" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard)
|
||||
"scn" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -42866,9 +42872,6 @@
|
||||
/obj/structure/sign/warning/securearea,
|
||||
/turf/closed/wall/rust,
|
||||
/area/maintenance/starboard)
|
||||
"sIO" = (
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"sIP" = (
|
||||
/obj/machinery/vending/cola/random,
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -45205,6 +45208,10 @@
|
||||
/obj/effect/landmark/carpspawn,
|
||||
/turf/open/space,
|
||||
/area/space/station_ruins)
|
||||
"uXV" = (
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/wood,
|
||||
/area/maintenance/port/aft)
|
||||
"ver" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 10
|
||||
@@ -71447,7 +71454,7 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
sdX
|
||||
uhz
|
||||
uhz
|
||||
oxn
|
||||
@@ -71704,7 +71711,7 @@ aac
|
||||
aac
|
||||
aac
|
||||
aac
|
||||
aaa
|
||||
sdX
|
||||
uhz
|
||||
iye
|
||||
mJP
|
||||
@@ -79446,7 +79453,7 @@ aFM
|
||||
aOH
|
||||
aOT
|
||||
aPV
|
||||
aRm
|
||||
uXV
|
||||
aSI
|
||||
aRC
|
||||
aKm
|
||||
@@ -91206,7 +91213,7 @@ aaa
|
||||
aae
|
||||
aaa
|
||||
aaa
|
||||
aac
|
||||
bxZ
|
||||
abL
|
||||
bxZ
|
||||
swz
|
||||
@@ -91463,7 +91470,7 @@ aaa
|
||||
aae
|
||||
aad
|
||||
aac
|
||||
bvg
|
||||
edA
|
||||
abM
|
||||
acu
|
||||
adt
|
||||
@@ -91720,7 +91727,7 @@ aad
|
||||
aah
|
||||
aad
|
||||
aad
|
||||
aad
|
||||
bxZ
|
||||
bxZ
|
||||
adq
|
||||
bxZ
|
||||
@@ -92526,7 +92533,7 @@ aSD
|
||||
aRz
|
||||
aRz
|
||||
aRz
|
||||
sGY
|
||||
saI
|
||||
aRz
|
||||
sIb
|
||||
bsD
|
||||
@@ -93045,7 +93052,7 @@ aRz
|
||||
sIc
|
||||
sIv
|
||||
sFs
|
||||
sIO
|
||||
aaa
|
||||
sIU
|
||||
sJe
|
||||
sIU
|
||||
@@ -98463,9 +98470,9 @@ aac
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aac
|
||||
aac
|
||||
aac
|
||||
@@ -98720,9 +98727,9 @@ aac
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aac
|
||||
aaa
|
||||
@@ -98977,9 +98984,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -99234,9 +99241,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -99491,9 +99498,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -99748,9 +99755,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -100005,9 +100012,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -100262,9 +100269,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -100519,9 +100526,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -100776,9 +100783,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -101033,9 +101040,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -101290,9 +101297,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -101547,9 +101554,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -101804,9 +101811,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -102061,9 +102068,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -102318,9 +102325,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -102575,9 +102582,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -102832,9 +102839,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -103089,9 +103096,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -103346,9 +103353,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -103603,9 +103610,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -103860,9 +103867,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -104117,9 +104124,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -104374,9 +104381,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -104631,9 +104638,9 @@ jFP
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -104888,9 +104895,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -105145,9 +105152,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -105402,9 +105409,9 @@ aaa
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
edA
|
||||
sdX
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+250
-193
File diff suppressed because it is too large
Load Diff
@@ -102,7 +102,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/gravity_generator)
|
||||
"au" = (
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/space)
|
||||
"av" = (
|
||||
/obj/structure/stairs{
|
||||
@@ -1407,7 +1407,7 @@
|
||||
},
|
||||
/area/hallway/secondary/service)
|
||||
"eC" = (
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/maintenance/department/bridge)
|
||||
"eD" = (
|
||||
/obj/effect/turf_decal/stripes/asteroid/line{
|
||||
@@ -1542,7 +1542,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/space)
|
||||
"iu" = (
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/hallway/secondary/service)
|
||||
"iK" = (
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -1593,7 +1593,7 @@
|
||||
},
|
||||
/area/hallway/secondary/service)
|
||||
"nx" = (
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/space/nearstation)
|
||||
"nz" = (
|
||||
/obj/machinery/light{
|
||||
@@ -1633,7 +1633,7 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/bridge)
|
||||
"qo" = (
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/engine/storage)
|
||||
"qR" = (
|
||||
/obj/effect/turf_decal/stripes/white/line{
|
||||
@@ -1646,7 +1646,7 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/engine/storage)
|
||||
"sh" = (
|
||||
/turf/open/floor/plasteel{
|
||||
@@ -1746,7 +1746,7 @@
|
||||
/area/construction)
|
||||
"Bk" = (
|
||||
/obj/structure/grille,
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/space/nearstation)
|
||||
"Bm" = (
|
||||
/obj/machinery/light{
|
||||
@@ -1876,7 +1876,7 @@
|
||||
"Ob" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/structure/grille,
|
||||
/turf/open/openspace,
|
||||
/turf/open/transparent/openspace,
|
||||
/area/space/nearstation)
|
||||
"Og" = (
|
||||
/obj/machinery/airalarm/directional/north,
|
||||
|
||||
@@ -13490,6 +13490,9 @@
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/instrument/piano_synth,
|
||||
/obj/item/instrument/guitar,
|
||||
/obj/structure/sign/painting{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"Fg" = (
|
||||
@@ -13794,6 +13797,9 @@
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"FX" = (
|
||||
/obj/structure/sign/painting{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/stairs,
|
||||
/area/centcom/holding)
|
||||
"FZ" = (
|
||||
@@ -14421,6 +14427,9 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/musician/piano,
|
||||
/obj/structure/sign/painting{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"Hk" = (
|
||||
@@ -16225,6 +16234,12 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/storage/crayons,
|
||||
/obj/item/storage/crayons,
|
||||
/obj/item/storage/crayons,
|
||||
/obj/structure/sign/painting{
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"KU" = (
|
||||
@@ -16304,6 +16319,14 @@
|
||||
/obj/item/storage/box/bodybags,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/centcom/holding)
|
||||
"Ll" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/easel,
|
||||
/obj/item/canvas/twentythreeXtwentythree,
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"Lm" = (
|
||||
/obj/machinery/shower{
|
||||
dir = 4
|
||||
@@ -16808,6 +16831,22 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/centcom/supplypod/loading/two)
|
||||
"NA" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/canvas/twentythreeXtwentythree,
|
||||
/obj/item/canvas/twentythreeXtwentythree,
|
||||
/obj/item/canvas/twentythreeXtwentythree,
|
||||
/obj/item/canvas/twentythreeXnineteen,
|
||||
/obj/item/canvas/twentythreeXnineteen,
|
||||
/obj/item/canvas/twentythreeXnineteen,
|
||||
/obj/item/canvas/nineteenXnineteen,
|
||||
/obj/item/canvas/nineteenXnineteen,
|
||||
/obj/item/canvas/nineteenXnineteen,
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"NE" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
@@ -16924,6 +16963,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/centcom/supplypod/loading/three)
|
||||
"On" = (
|
||||
/obj/structure/sign/painting{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"Op" = (
|
||||
/obj/structure/sink{
|
||||
dir = 8;
|
||||
@@ -17249,6 +17294,10 @@
|
||||
},
|
||||
/turf/open/floor/mineral/titanium,
|
||||
/area/centcom/evac)
|
||||
"Qc" = (
|
||||
/obj/effect/landmark/mafia_game_area,
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"Qe" = (
|
||||
/turf/open/ai_visible,
|
||||
/area/ai_multicam_room)
|
||||
@@ -17906,6 +17955,15 @@
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/centcom/holding)
|
||||
"TD" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/sign/painting{
|
||||
pixel_x = 32
|
||||
},
|
||||
/turf/open/indestructible/hotelwood,
|
||||
/area/centcom/holding)
|
||||
"TF" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
@@ -45453,8 +45511,8 @@ Nd
|
||||
AE
|
||||
CV
|
||||
Sd
|
||||
KT
|
||||
Sd
|
||||
Ll
|
||||
CV
|
||||
Sd
|
||||
Sd
|
||||
Sd
|
||||
@@ -45710,7 +45768,7 @@ Nd
|
||||
QJ
|
||||
Sd
|
||||
Sd
|
||||
KT
|
||||
NA
|
||||
Sd
|
||||
Sd
|
||||
Sd
|
||||
@@ -46222,8 +46280,8 @@ Fh
|
||||
Fh
|
||||
Wl
|
||||
Sd
|
||||
MR
|
||||
Sd
|
||||
TD
|
||||
On
|
||||
FX
|
||||
Sd
|
||||
Sd
|
||||
@@ -58911,7 +58969,7 @@ aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
Qc
|
||||
aa
|
||||
aa
|
||||
aa
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
"map_name": "MultiZ Debug",
|
||||
"map_path": "map_files/debug",
|
||||
"map_file": "multiz.dmm",
|
||||
"traits": [{"Up": 1}, {"Up": 1, "Down": -1}, {"Down": -1}]
|
||||
"traits": [{"Up" : 1, "Linkage" : "Cross"}, {"Up" : 1, "Down" : -1, "Baseturf" : "/turf/open/transparent/openspace", "Linkage" : "Cross"}, {"Down" : -1, "Baseturf" : "/turf/open/transparent/openspace", "Linkage" : "Cross"}]
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
/turf/open/floor/light/colour_cycle,
|
||||
/area/shuttle/escape)
|
||||
"r" = (
|
||||
/turf/open/floor/mineral/plasma,
|
||||
/turf/open/floor/mineral/plasma/disco,
|
||||
/area/shuttle/escape)
|
||||
"s" = (
|
||||
/turf/open/floor/mineral/silver,
|
||||
@@ -112,7 +112,7 @@
|
||||
resistance_flags = 2
|
||||
},
|
||||
/obj/structure/fans/tiny,
|
||||
/turf/open/floor/mineral/plasma,
|
||||
/turf/open/floor/mineral/plasma/disco,
|
||||
/area/shuttle/escape)
|
||||
"v" = (
|
||||
/obj/machinery/jukebox/disco/indestructible,
|
||||
|
||||
@@ -2690,7 +2690,7 @@
|
||||
/obj/structure/rack,
|
||||
/obj/item/storage/box/zipties,
|
||||
/obj/item/assembly/flash/handheld,
|
||||
/obj/item/melee/classic_baton/telescopic,
|
||||
/obj/item/melee/classic_baton,
|
||||
/obj/machinery/light/small/built{
|
||||
dir = 8
|
||||
},
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
"Linkage":null,
|
||||
"Gravity":true,
|
||||
"Ice Ruins Underground":true,
|
||||
"Baseturf":"/turf/open/openspace/icemoon"
|
||||
"Baseturf":"/turf/open/transparent/openspace/icemoon"
|
||||
},
|
||||
{
|
||||
"Down":-1,
|
||||
|
||||
Binary file not shown.
@@ -98,7 +98,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
|
||||
#define ZAP_MOB_DAMAGE (1<<3)
|
||||
#define ZAP_MOB_STUN (1<<4)
|
||||
|
||||
#define ZAP_DEFAULT_FLAGS ALL
|
||||
#define ZAP_DEFAULT_FLAGS ZAP_MOB_STUN | ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE
|
||||
#define ZAP_FUSION_FLAGS ZAP_OBJ_DAMAGE | ZAP_MOB_DAMAGE | ZAP_MOB_STUN
|
||||
#define ZAP_SUPERMATTER_FLAGS NONE
|
||||
|
||||
|
||||
@@ -63,6 +63,16 @@
|
||||
#define CONTRACT_UPLINK_PAGE_CONTRACTS "CONTRACTS"
|
||||
#define CONTRACT_UPLINK_PAGE_HUB "HUB"
|
||||
|
||||
|
||||
///Heretics --
|
||||
#define IS_HERETIC(mob) (mob.mind?.has_antag_datum(/datum/antagonist/heretic))
|
||||
|
||||
#define PATH_SIDE "Side"
|
||||
|
||||
#define PATH_ASH "Ash"
|
||||
#define PATH_RUST "Rust"
|
||||
#define PATH_FLESH "Flesh"
|
||||
|
||||
//Overthrow time to update heads obj
|
||||
#define OBJECTIVE_UPDATING_TIME 300
|
||||
|
||||
@@ -91,4 +101,4 @@
|
||||
#define BLOB_REROLL_TIME 2400 // blob gets a free reroll every X time
|
||||
#define BLOB_SPREAD_COST 4
|
||||
#define BLOB_ATTACK_REFUND 2 //blob refunds this much if it attacks and doesn't spread
|
||||
#define BLOB_REFLECTOR_COST 15
|
||||
#define BLOB_REFLECTOR_COST 15
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
#define ANTAG_HUD_BROTHER 23
|
||||
#define ANTAG_HUD_BLOODSUCKER 24
|
||||
#define ANTAG_HUD_FUGITIVE 25
|
||||
#define ANTAG_HUD_HERETIC 26
|
||||
|
||||
// Notification action types
|
||||
#define NOTIFY_JUMP "jump"
|
||||
|
||||
@@ -15,22 +15,31 @@
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
// /datum signals
|
||||
#define COMSIG_COMPONENT_ADDED "component_added" //sent to the new datum parent when a component is added to them: (/datum/component)
|
||||
#define COMSIG_COMPONENT_REMOVING "component_removing" //sent to the datum parent before a component is removed from them because of RemoveComponent: (/datum/component)
|
||||
#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" //sent to the component itself when unregistered from a parent
|
||||
#define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent" //sent to the component itself when registered to a parent
|
||||
#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
|
||||
#define COMSIG_PARENT_QDELETING "parent_qdeleting" //just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
|
||||
|
||||
/// Trait signals
|
||||
#define COMPONENT_ADD_TRAIT (1<<0)
|
||||
#define COMPONENT_REMOVE_TRAIT (1<<1)
|
||||
/// when a component is added to a datum: (/datum/component)
|
||||
#define COMSIG_COMPONENT_ADDED "component_added"
|
||||
/// before a component is removed from a datum because of RemoveComponent: (/datum/component)
|
||||
#define COMSIG_COMPONENT_REMOVING "component_removing"
|
||||
/// before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
|
||||
#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted"
|
||||
/// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
|
||||
#define COMSIG_PARENT_QDELETING "parent_qdeleting"
|
||||
/// generic topic handler (usr, href_list)
|
||||
#define COMSIG_TOPIC "handle_topic"
|
||||
|
||||
/// fires on the target datum when an element is attached to it (/datum/element)
|
||||
#define COMSIG_ELEMENT_ATTACH "element_attach"
|
||||
/// fires on the target datum when an element is attached to it (/datum/element)
|
||||
#define COMSIG_ELEMENT_DETACH "element_detach"
|
||||
|
||||
/// sent to the component itself when unregistered from a parent
|
||||
#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent"
|
||||
/// sent to the component itself when registered to a parent
|
||||
#define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent"
|
||||
|
||||
/// Trait signals
|
||||
#define COMPONENT_ADD_TRAIT (1<<0)
|
||||
#define COMPONENT_REMOVE_TRAIT (1<<1)
|
||||
|
||||
// /atom signals
|
||||
//from base of atom/proc/Initialize(): sent any time a new atom is created
|
||||
#define COMSIG_ATOM_CREATED "atom_created"
|
||||
@@ -56,30 +65,54 @@
|
||||
#define COMSIG_ATOM_EXIT "atom_exit" //from base of atom/Exit(): (/atom/movable/exiting, /atom/newloc)
|
||||
#define COMPONENT_ATOM_BLOCK_EXIT 1
|
||||
#define COMSIG_ATOM_EXITED "atom_exited" //from base of atom/Exited(): (atom/movable/exiting, atom/newloc)
|
||||
#define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target)
|
||||
#define COMSIG_ATOM_EMP_ACT "atom_emp_act" //from base of atom/emp_act(): (severity)
|
||||
#define COMSIG_ATOM_FIRE_ACT "atom_fire_act" //from base of atom/fire_act(): (exposed_temperature, exposed_volume)
|
||||
#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" //from base of atom/bullet_act(): (/obj/item/projectile, def_zone)
|
||||
#define COMSIG_ATOM_BLOB_ACT "atom_blob_act" //from base of atom/blob_act(): (/obj/structure/blob)
|
||||
#define COMSIG_ATOM_ACID_ACT "atom_acid_act" //from base of atom/acid_act(): (acidpwr, acid_volume)
|
||||
#define COMSIG_ATOM_EMAG_ACT "atom_emag_act" //from base of atom/emag_act(): ()
|
||||
#define COMSIG_ATOM_RAD_ACT "atom_rad_act" //from base of atom/rad_act(intensity)
|
||||
#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act" //from base of atom/narsie_act(): ()
|
||||
#define COMSIG_ATOM_RATVAR_ACT "atom_ratvar_act" //from base of atom/ratvar_act(): ()
|
||||
#define COMSIG_ATOM_RCD_ACT "atom_rcd_act" //from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
|
||||
#define COMSIG_ATOM_SING_PULL "atom_sing_pull" //from base of atom/singularity_pull(): (S, current_size)
|
||||
#define COMSIG_ATOM_SET_LIGHT "atom_set_light" //from base of atom/set_light(): (l_range, l_power, l_color)
|
||||
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change" //from base of atom/setDir(): (old_dir, new_dir)
|
||||
#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del" //from base of atom/handle_atom_del(): (atom/deleted)
|
||||
#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity" //from base of atom/has_gravity(): (turf/location, list/forced_gravities)
|
||||
#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe" //from proc/get_rad_contents(): ()
|
||||
#define COMPONENT_BLOCK_RADIATION 1
|
||||
#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam" //from base of datum/radiation_wave/radiate(): (strength)
|
||||
#define COMPONENT_BLOCK_CONTAMINATION 1
|
||||
#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass" //from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width)
|
||||
#define COMPONENT_RAD_WAVE_HANDLED 1
|
||||
#define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next)
|
||||
#define COMPONENT_BLOCK_REACH 1
|
||||
///from base of atom/ex_act(): (severity, target)
|
||||
#define COMSIG_ATOM_EX_ACT "atom_ex_act"
|
||||
///from base of atom/emp_act(): (severity)
|
||||
#define COMSIG_ATOM_EMP_ACT "atom_emp_act"
|
||||
///from base of atom/fire_act(): (exposed_temperature, exposed_volume)
|
||||
#define COMSIG_ATOM_FIRE_ACT "atom_fire_act"
|
||||
///from base of atom/bullet_act(): (/obj/projectile, def_zone)
|
||||
#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act"
|
||||
///from base of atom/blob_act(): (/obj/structure/blob)
|
||||
#define COMSIG_ATOM_BLOB_ACT "atom_blob_act"
|
||||
///from base of atom/acid_act(): (acidpwr, acid_volume)
|
||||
#define COMSIG_ATOM_ACID_ACT "atom_acid_act"
|
||||
///from base of atom/emag_act(): (/mob/user)
|
||||
#define COMSIG_ATOM_EMAG_ACT "atom_emag_act"
|
||||
///from base of atom/rad_act(intensity)
|
||||
#define COMSIG_ATOM_RAD_ACT "atom_rad_act"
|
||||
///from base of atom/narsie_act(): ()
|
||||
#define COMSIG_ATOM_NARSIE_ACT "atom_narsie_act"
|
||||
///from base of atom/ratvar_act(): ()
|
||||
#define COMSIG_ATOM_RATVAR_ACT "atom_ratvar_act"
|
||||
///from base of atom/rcd_act(): (/mob, /obj/item/construction/rcd, passed_mode)
|
||||
#define COMSIG_ATOM_RCD_ACT "atom_rcd_act"
|
||||
///from base of atom/singularity_pull(): (S, current_size)
|
||||
#define COMSIG_ATOM_SING_PULL "atom_sing_pull"
|
||||
///from obj/machinery/bsa/full/proc/fire(): ()
|
||||
#define COMSIG_ATOM_BSA_BEAM "atom_bsa_beam_pass"
|
||||
#define COMSIG_ATOM_BLOCKS_BSA_BEAM (1<<0)
|
||||
///from base of atom/set_light(): (l_range, l_power, l_color)
|
||||
#define COMSIG_ATOM_SET_LIGHT "atom_set_light"
|
||||
///from base of atom/setDir(): (old_dir, new_dir). Called before the direction changes.
|
||||
#define COMSIG_ATOM_DIR_CHANGE "atom_dir_change"
|
||||
///from base of atom/handle_atom_del(): (atom/deleted)
|
||||
#define COMSIG_ATOM_CONTENTS_DEL "atom_contents_del"
|
||||
///from base of atom/has_gravity(): (turf/location, list/forced_gravities)
|
||||
#define COMSIG_ATOM_HAS_GRAVITY "atom_has_gravity"
|
||||
///from proc/get_rad_contents(): ()
|
||||
#define COMSIG_ATOM_RAD_PROBE "atom_rad_probe"
|
||||
#define COMPONENT_BLOCK_RADIATION (1<<0)
|
||||
///from base of datum/radiation_wave/radiate(): (strength)
|
||||
#define COMSIG_ATOM_RAD_CONTAMINATING "atom_rad_contam"
|
||||
#define COMPONENT_BLOCK_CONTAMINATION (1<<0)
|
||||
///from base of datum/radiation_wave/check_obstructions(): (datum/radiation_wave, width)
|
||||
#define COMSIG_ATOM_RAD_WAVE_PASSING "atom_rad_wave_pass"
|
||||
#define COMPONENT_RAD_WAVE_HANDLED (1<<0)
|
||||
///from internal loop in atom/movable/proc/CanReach(): (list/next)
|
||||
#define COMSIG_ATOM_CANREACH "atom_can_reach"
|
||||
#define COMPONENT_BLOCK_REACH (1<<0)
|
||||
|
||||
#define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" //from base of atom/screwdriver_act(): (mob/living/user, obj/item/I)
|
||||
#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" //called when teleporting into a protected turf: (channel, turf/origin, turf/destination)
|
||||
#define COMPONENT_BLOCK_TELEPORT 1
|
||||
@@ -209,6 +242,8 @@
|
||||
#define COMSIG_MOB_SWAP_HANDS "mob_swap_hands" //from base of mob/swap_hand(): (obj/item)
|
||||
#define COMPONENT_BLOCK_SWAP 1
|
||||
|
||||
#define COMSIG_PROCESS_BORGCHARGER_OCCUPANT "living_charge"
|
||||
|
||||
// /client signals
|
||||
#define COMSIG_MOB_CLIENT_LOGIN "mob_client_login" //sent when a mob/login() finishes: (client)
|
||||
#define COMSIG_MOB_CLIENT_LOGOUT "mob_client_logout" //sent when a mob/logout() starts: (client)
|
||||
@@ -277,6 +312,7 @@
|
||||
#define COMSIG_OBJ_DECONSTRUCT "obj_deconstruct" //from base of obj/deconstruct(): (disassembled)
|
||||
#define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag)
|
||||
#define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value)
|
||||
#define COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH "obj_default_unfasten_wrench" //called exclusively in plumbing, for now
|
||||
#define COMSIG_OBJ_ATTACK_GENERIC "obj_attack_generic" //from base of atom/animal_attack(): (/mob/user)
|
||||
#define COMPONENT_STOP_GENERIC_ATTACK 1
|
||||
|
||||
@@ -452,6 +488,9 @@
|
||||
#define COMPONENT_TWOHANDED_BLOCK_WIELD 1
|
||||
#define COMSIG_TWOHANDED_UNWIELD "twohanded_unwield" //from base of datum/component/two_handed/proc/unwield(mob/living/carbon/user): (/mob/user)
|
||||
|
||||
// /datum/component/squeak signals
|
||||
#define COMSIG_CROSS_SQUEAKED "cross_squeaked" // sent when a squeak component squeaks from crossing something, to delay anything else crossing that might squeak to prevent ear hurt.
|
||||
|
||||
// /datum/action signals
|
||||
#define COMSIG_ACTION_TRIGGER "action_trigger" //from base of datum/action/proc/Trigger(): (datum/action)
|
||||
#define COMPONENT_ACTION_BLOCK_TRIGGER 1
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/// Module is compatible with Security Cyborg models
|
||||
#define BORG_MODULE_SECURITY (1<<0)
|
||||
/// Module is compatible with Miner Cyborg models
|
||||
#define BORG_MODULE_MINER (1<<1)
|
||||
/// Module is compatible with Janitor Cyborg models
|
||||
#define BORG_MODULE_JANITOR (1<<2)
|
||||
/// Module is compatible with Medical Cyborg models
|
||||
#define BORG_MODULE_MEDICAL (1<<3)
|
||||
/// Module is compatible with Engineering Cyborg models
|
||||
#define BORG_MODULE_ENGINEERING (1<<4)
|
||||
|
||||
/// Module is compatible with Ripley Exosuit models
|
||||
#define EXOSUIT_MODULE_RIPLEY (1<<0)
|
||||
/// Module is compatible with Odyseeus Exosuit models
|
||||
#define EXOSUIT_MODULE_ODYSSEUS (1<<1)
|
||||
/// Module is compatible with Clarke Exosuit models. Rebranded to firefighter because tg nerfed it to this.
|
||||
#define EXOSUIT_MODULE_FIREFIGHTER (1<<2)
|
||||
// #define EXOSUIT_MODULE_CLARKE (1<<2)
|
||||
/// Module is compatible with Gygax Exosuit models
|
||||
#define EXOSUIT_MODULE_GYGAX (1<<3)
|
||||
/// Module is compatible with Durand Exosuit models
|
||||
#define EXOSUIT_MODULE_DURAND (1<<4)
|
||||
/// Module is compatible with H.O.N.K Exosuit models
|
||||
#define EXOSUIT_MODULE_HONK (1<<5)
|
||||
/// Module is compatible with Phazon Exosuit models
|
||||
#define EXOSUIT_MODULE_PHAZON (1<<6)
|
||||
/// Module is compatable with N models
|
||||
#define EXOSUIT_MODULE_GYGAX_MED (1<<7)
|
||||
|
||||
/// Module is compatible with "Working" Exosuit models - Ripley and Clarke
|
||||
#define EXOSUIT_MODULE_WORKING EXOSUIT_MODULE_RIPLEY | EXOSUIT_MODULE_FIREFIGHTER // | EXOSUIT_MODULE_CLARKE
|
||||
/// Module is compatible with "Combat" Exosuit models - Gygax, H.O.N.K, Durand and Phazon
|
||||
#define EXOSUIT_MODULE_COMBAT EXOSUIT_MODULE_GYGAX | EXOSUIT_MODULE_HONK | EXOSUIT_MODULE_DURAND | EXOSUIT_MODULE_PHAZON
|
||||
/// Module is compatible with "Medical" Exosuit modelsm - Odysseus
|
||||
#define EXOSUIT_MODULE_MEDICAL EXOSUIT_MODULE_ODYSSEUS | EXOSUIT_MODULE_GYGAX_MED
|
||||
@@ -7,6 +7,8 @@
|
||||
#define FOOTSTEP_WATER "water"
|
||||
#define FOOTSTEP_LAVA "lava"
|
||||
#define FOOTSTEP_MEAT "meat"
|
||||
#define FOOTSTEP_RUST "rust"
|
||||
|
||||
//barefoot sounds
|
||||
#define FOOTSTEP_WOOD_BAREFOOT "woodbarefoot"
|
||||
#define FOOTSTEP_WOOD_CLAW "woodclaw"
|
||||
@@ -91,7 +93,9 @@ GLOBAL_LIST_INIT(footstep, list(
|
||||
'sound/effects/footstep/lava2.ogg',
|
||||
'sound/effects/footstep/lava3.ogg'), 100, 0),
|
||||
FOOTSTEP_MEAT = list(list(
|
||||
'sound/effects/meatslap.ogg'), 100, 0)
|
||||
'sound/effects/meatslap.ogg'), 100, 0),
|
||||
FOOTSTEP_RUST = list(list(
|
||||
'sound/effects/footstep/rustystep1.ogg'), 100, 0)
|
||||
))
|
||||
|
||||
//bare footsteps lists
|
||||
@@ -135,7 +139,9 @@ GLOBAL_LIST_INIT(barefootstep, list(
|
||||
'sound/effects/footstep/lava2.ogg',
|
||||
'sound/effects/footstep/lava3.ogg'), 100, 0),
|
||||
FOOTSTEP_MEAT = list(list(
|
||||
'sound/effects/meatslap.ogg'), 100, 0)
|
||||
'sound/effects/meatslap.ogg'), 100, 0),
|
||||
FOOTSTEP_RUST = list(list(
|
||||
'sound/effects/footstep/rustystep1.ogg'), 100, 0)
|
||||
))
|
||||
|
||||
//claw footsteps lists
|
||||
@@ -179,7 +185,9 @@ GLOBAL_LIST_INIT(clawfootstep, list(
|
||||
'sound/effects/footstep/lava2.ogg',
|
||||
'sound/effects/footstep/lava3.ogg'), 100, 0),
|
||||
FOOTSTEP_MEAT = list(list(
|
||||
'sound/effects/meatslap.ogg'), 100, 0)
|
||||
'sound/effects/meatslap.ogg'), 100, 0),
|
||||
FOOTSTEP_RUST = list(list(
|
||||
'sound/effects/footstep/rustystep1.ogg'), 100, 0)
|
||||
))
|
||||
|
||||
//heavy footsteps list
|
||||
@@ -197,5 +205,7 @@ GLOBAL_LIST_INIT(heavyfootstep, list(
|
||||
'sound/effects/footstep/lava2.ogg',
|
||||
'sound/effects/footstep/lava3.ogg'), 100, 0),
|
||||
FOOTSTEP_MEAT = list(list(
|
||||
'sound/effects/meatslap.ogg'), 100, 0)
|
||||
'sound/effects/meatslap.ogg'), 100, 0),
|
||||
FOOTSTEP_RUST = list(list(
|
||||
'sound/effects/footstep/rustystep1.ogg'), 150, 2)
|
||||
))
|
||||
|
||||
@@ -17,7 +17,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
|
||||
/turf/open/chasm,
|
||||
/turf/open/lava,
|
||||
/turf/open/water,
|
||||
/turf/open/openspace
|
||||
/turf/open/transparent/openspace
|
||||
)))
|
||||
|
||||
#define isgroundlessturf(A) (is_type_in_typecache(A, GLOB.turfs_without_ground))
|
||||
@@ -44,6 +44,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
|
||||
|
||||
#define isplatingturf(A) (istype(A, /turf/open/floor/plating))
|
||||
|
||||
#define istransparentturf(A) (istype(A, /turf/open/transparent))
|
||||
|
||||
//Mobs
|
||||
#define isliving(A) (istype(A, /mob/living))
|
||||
|
||||
@@ -74,6 +76,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
|
||||
#define ismush(A) (is_species(A, /datum/species/mush))
|
||||
#define isshadow(A) (is_species(A, /datum/species/shadow))
|
||||
#define isskeleton(A) (is_species(A, /datum/species/skeleton))
|
||||
#define isethereal(A) (is_species(A, /datum/species/ethereal))
|
||||
|
||||
// Citadel specific species
|
||||
#define isipcperson(A) (is_species(A, /datum/species/ipc))
|
||||
|
||||
@@ -131,6 +131,8 @@
|
||||
#define LIGHTING_LAYER 15
|
||||
#define LIGHTING_RENDER_TARGET "LIGHT_PLANE"
|
||||
|
||||
#define RAD_TEXT_LAYER 15.1
|
||||
|
||||
#define ABOVE_LIGHTING_PLANE 16
|
||||
#define ABOVE_LIGHTING_LAYER 16
|
||||
#define ABOVE_LIGHTING_RENDER_TARGET "ABOVE_LIGHTING_PLANE"
|
||||
|
||||
+33
-33
@@ -1,56 +1,56 @@
|
||||
//defines for loadout categories
|
||||
//no category defines
|
||||
#define NOCATEGORY list("NOCATEGORY")
|
||||
#define NOSUBCATEGORY list("NOSUBCATEGORY")
|
||||
|
||||
#define LOADOUT_CATEGORY_NONE "ERROR"
|
||||
#define LOADOUT_SUBCATEGORY_NONE "Miscellaneous"
|
||||
#define LOADOUT_SUBCATEGORIES_NONE list("Miscellaneous")
|
||||
|
||||
//backpack
|
||||
#define CATEGORY_BACKPACK "In backpack"
|
||||
#define SUBCATEGORY_BACKPACK_GENERAL "General" //basically anything that there's not enough of to have its own subcategory
|
||||
#define SUBCATEGORY_BACKPACK_TOYS "Toys"
|
||||
#define LOADOUT_CATEGORY_BACKPACK "In backpack"
|
||||
#define LOADOUT_SUBCATEGORY_BACKPACK_GENERAL "General" //basically anything that there's not enough of to have its own subcategory
|
||||
#define LOADOUT_SUBCATEGORY_BACKPACK_TOYS "Toys"
|
||||
//neck
|
||||
#define CATEGORY_NECK "Neck"
|
||||
#define SUBCATEGORY_NECK_GENERAL "General"
|
||||
#define SUBCATEGORY_NECK_TIE "Ties"
|
||||
#define SUBCATEGORY_NECK_SCARVES "Scarves"
|
||||
#define LOADOUT_CATEGORY_NECK "Neck"
|
||||
#define LOADOUT_SUBCATEGORY_NECK_GENERAL "General"
|
||||
#define LOADOUT_SUBCATEGORY_NECK_TIE "Ties"
|
||||
#define LOADOUT_SUBCATEGORY_NECK_SCARVES "Scarves"
|
||||
|
||||
//mask
|
||||
#define CATEGORY_MASK "Mask"
|
||||
#define LOADOUT_CATEGORY_MASK "Mask"
|
||||
|
||||
//hands
|
||||
#define CATEGORY_HANDS "Hands"
|
||||
#define LOADOUT_CATEGORY_HANDS "Hands"
|
||||
|
||||
//uniform
|
||||
#define CATEGORY_UNIFORM "Uniform" //there's so many types of uniform it's best to have lots of categories
|
||||
#define SUBCATEGORY_UNIFORM_GENERAL "General"
|
||||
#define SUBCATEGORY_UNIFORM_JOBS "Jobs"
|
||||
#define SUBCATEGORY_UNIFORM_SUITS "Suits"
|
||||
#define SUBCATEGORY_UNIFORM_SKIRTS "Skirts"
|
||||
#define SUBCATEGORY_UNIFORM_DRESSES "Dresses"
|
||||
#define SUBCATEGORY_UNIFORM_SWEATERS "Sweaters"
|
||||
#define SUBCATEGORY_UNIFORM_PANTS "Pants"
|
||||
#define SUBCATEGORY_UNIFORM_SHORTS "Shorts"
|
||||
#define LOADOUT_CATEGORY_UNIFORM "Uniform" //there's so many types of uniform it's best to have lots of categories
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_GENERAL "General"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_JOBS "Jobs"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_SUITS "Suits"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_SKIRTS "Skirts"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_DRESSES "Dresses"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_SWEATERS "Sweaters"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_PANTS "Pants"
|
||||
#define LOADOUT_SUBCATEGORY_UNIFORM_SHORTS "Shorts"
|
||||
|
||||
//suit
|
||||
#define CATEGORY_SUIT "Suit"
|
||||
#define SUBCATEGORY_SUIT_GENERAL "General"
|
||||
#define SUBCATEGORY_SUIT_COATS "Coats"
|
||||
#define SUBCATEGORY_SUIT_JACKETS "Jackets"
|
||||
#define SUBCATEGORY_SUIT_JOBS "Jobs"
|
||||
#define LOADOUT_CATEGORY_SUIT "Suit"
|
||||
#define LOADOUT_SUBCATEGORY_SUIT_GENERAL "General"
|
||||
#define LOADOUT_SUBCATEGORY_SUIT_COATS "Coats"
|
||||
#define LOADOUT_SUBCATEGORY_SUIT_JACKETS "Jackets"
|
||||
#define LOADOUT_SUBCATEGORY_SUIT_JOBS "Jobs"
|
||||
|
||||
//head
|
||||
#define CATEGORY_HEAD "Head"
|
||||
#define SUBCATEGORY_HEAD_GENERAL "General"
|
||||
#define SUBCATEGORY_HEAD_JOBS "Jobs"
|
||||
#define LOADOUT_CATEGORY_HEAD "Head"
|
||||
#define LOADOUT_SUBCATEGORY_HEAD_GENERAL "General"
|
||||
#define LOADOUT_SUBCATEGORY_HEAD_JOBS "Jobs"
|
||||
|
||||
//shoes
|
||||
#define CATEGORY_SHOES "Shoes"
|
||||
#define LOADOUT_CATEGORY_SHOES "Shoes"
|
||||
|
||||
//gloves
|
||||
#define CATEGORY_GLOVES "Gloves"
|
||||
#define LOADOUT_CATEGORY_GLOVES "Gloves"
|
||||
|
||||
//glasses
|
||||
#define CATEGORY_GLASSES "Glasses"
|
||||
#define LOADOUT_CATEGORY_GLASSES "Glasses"
|
||||
|
||||
//donator items
|
||||
#define CATEGORY_DONATOR "Donator"
|
||||
#define LOADOUT_CATEGORY_DONATOR "Donator"
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#define INVESTIGATE_FERMICHEM "fermichem"
|
||||
#define INVESTIGATE_RCD "rcd"
|
||||
#define INVESTIGATE_CRYOGENICS "cryogenics"
|
||||
#define INVESTIGATE_GHOST "ghost"
|
||||
|
||||
// Logging types for log_message()
|
||||
#define LOG_ATTACK (1 << 0)
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
// Cosecant
|
||||
#define CSC(x) (1 / sin(x))
|
||||
|
||||
#define ATAN2(x, y) ( !(x) && !(y) ? 0 : (y) >= 0 ? arccos((x) / sqrt((x)*(x) + (y)*(y))) : -arccos((x) / sqrt((x)*(x) + (y)*(y))) )
|
||||
|
||||
// Greatest Common Divisor - Euclid's algorithm
|
||||
/proc/Gcd(a, b)
|
||||
return b ? Gcd(b, (a) % (b)) : a
|
||||
|
||||
@@ -341,10 +341,11 @@ 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_MISS_STATION 1
|
||||
#define NUKE_SYNDICATE_BASE 2
|
||||
#define STATION_DESTROYED_NUKE 3
|
||||
#define STATION_EVACUATED 4
|
||||
#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 BLOB_WIN 8
|
||||
#define BLOB_NUKE 9
|
||||
#define BLOB_DESTROYED 10
|
||||
|
||||
@@ -176,6 +176,15 @@
|
||||
#define DISGUST_LEVEL_VERYGROSS 50
|
||||
#define DISGUST_LEVEL_GROSS 25
|
||||
|
||||
//Charge levels for Ethereals
|
||||
#define ETHEREAL_CHARGE_NONE 0
|
||||
#define ETHEREAL_CHARGE_LOWPOWER 20
|
||||
#define ETHEREAL_CHARGE_NORMAL 50
|
||||
#define ETHEREAL_CHARGE_ALMOSTFULL 75
|
||||
#define ETHEREAL_CHARGE_FULL 100
|
||||
#define ETHEREAL_CHARGE_OVERLOAD 125
|
||||
#define ETHEREAL_CHARGE_DANGEROUS 150
|
||||
|
||||
//Slime evolution threshold. Controls how fast slimes can split/grow
|
||||
#define SLIME_EVOLUTION_THRESHOLD 10
|
||||
|
||||
@@ -284,6 +293,7 @@
|
||||
#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you
|
||||
|
||||
#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases
|
||||
#define ETHEREAL_CHARGE_FACTOR 0.08 //factor at which ethereal's charge decreases
|
||||
#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default.
|
||||
#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism
|
||||
|
||||
@@ -322,3 +332,5 @@
|
||||
|
||||
/// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine()
|
||||
#define EXAMINE_MORE_TIME 1 SECONDS
|
||||
|
||||
#define SILENCE_RANGED_MESSAGE (1<<0)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#define FIRST_DUCT_LAYER 1
|
||||
#define SECOND_DUCT_LAYER 2
|
||||
#define THIRD_DUCT_LAYER 4
|
||||
#define FOURTH_DUCT_LAYER 8
|
||||
#define FIFTH_DUCT_LAYER 16
|
||||
|
||||
#define DUCT_LAYER_DEFAULT THIRD_DUCT_LAYER
|
||||
|
||||
#define MACHINE_REAGENT_TRANSFER 10
|
||||
@@ -8,6 +8,5 @@
|
||||
GLOBAL_LIST_INIT(blacklisted_pool_reagents, list(
|
||||
/datum/reagent/toxin/plasma, /datum/reagent/oxygen, /datum/reagent/nitrous_oxide, /datum/reagent/nitrogen, //gases
|
||||
/datum/reagent/fermi, //blanket fermichem ban sorry. this also covers mkultra, genital enlargers, etc etc.
|
||||
/datum/reagent/drug/aphrodisiac, /datum/reagent/drug/anaphrodisiac, /datum/reagent/drug/aphrodisiacplus, /datum/reagent/drug/anaphrodisiacplus, //literally asking for prefbreaks
|
||||
/datum/reagent/consumable/femcum, /datum/reagent/consumable/semen //NO.
|
||||
/datum/reagent/consumable/semen //NO.
|
||||
))
|
||||
|
||||
+11
-4
@@ -6,10 +6,17 @@
|
||||
#define QDEL_HINT_IWILLGC 2 //functionally the same as the above. qdel should assume the object will gc on its own, and not check it.
|
||||
#define QDEL_HINT_HARDDEL 3 //qdel should assume this object won't gc, and queue a hard delete using a hard reference.
|
||||
#define QDEL_HINT_HARDDEL_NOW 4 //qdel should assume this object won't gc, and hard del it post haste.
|
||||
#define QDEL_HINT_FINDREFERENCE 5 //functionally identical to QDEL_HINT_QUEUE if TESTING is not enabled in _compiler_options.dm.
|
||||
//if TESTING is enabled, qdel will call this object's find_references() verb.
|
||||
#define QDEL_HINT_IFFAIL_FINDREFERENCE 6 //Above but only if gc fails.
|
||||
//defines for the gc_destroyed var
|
||||
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
/** If LEGACY_REFERENCE_TRACKING is enabled, qdel will call this object's find_references() verb.
|
||||
*
|
||||
* Functionally identical to QDEL_HINT_QUEUE if GC_FAILURE_HARD_LOOKUP is not enabled in _compiler_options.dm.
|
||||
*/
|
||||
#define QDEL_HINT_FINDREFERENCE 5
|
||||
/// Behavior as QDEL_HINT_FINDREFERENCE, but only if the GC fails and a hard delete is forced.
|
||||
#define QDEL_HINT_IFFAIL_FINDREFERENCE 6
|
||||
#endif
|
||||
|
||||
|
||||
#define GC_QUEUE_CHECK 1
|
||||
#define GC_QUEUE_HARDDELETE 2
|
||||
|
||||
@@ -57,6 +57,10 @@
|
||||
#define ADD_REAGENT 2 // reagent added
|
||||
#define REM_REAGENT 3 // reagent removed (may still exist)
|
||||
|
||||
|
||||
#define PILL_STYLE_COUNT 22 //Update this if you add more pill icons or you die (literally, we'll toss a nuke at whever your ip turns up)
|
||||
#define RANDOM_PILL_STYLE 22 //Dont change this one though
|
||||
|
||||
#define THRESHOLD_UNHUSK 50 // health threshold for synthflesh/rezadone to unhusk someone
|
||||
|
||||
//reagent bitflags, used for altering how they works
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#define ROLE_ALIEN "xenomorph"
|
||||
#define ROLE_PAI "pAI"
|
||||
#define ROLE_CULTIST "cultist"
|
||||
#define ROLE_HERETIC "Heretic"
|
||||
#define ROLE_BLOB "blob"
|
||||
#define ROLE_NINJA "space ninja"
|
||||
#define ROLE_MONKEY "monkey"
|
||||
@@ -64,6 +65,7 @@ GLOBAL_LIST_INIT(special_roles, list(
|
||||
ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs,
|
||||
ROLE_SENTIENCE,
|
||||
ROLE_GANG = /datum/game_mode/gang,
|
||||
ROLE_HERETIC = /datum/game_mode/heretics,
|
||||
ROLE_BLOODSUCKER = /datum/game_mode/bloodsucker
|
||||
//ROLE_MONSTERHUNTER Disabled for now
|
||||
))
|
||||
|
||||
@@ -111,6 +111,10 @@
|
||||
|
||||
#define STATUS_EFFECT_LIMP /datum/status_effect/limp //For when you have a busted leg (or two!) and want additional slowdown when walking on that leg
|
||||
|
||||
#define STATUS_EFFECT_AMOK /datum/status_effect/amok //Makes the target automatically strike out at adjecent non-heretics.
|
||||
|
||||
#define STATUS_EFFECT_CLOUDSTRUCK /datum/status_effect/cloudstruck //blinds and applies an overlay.
|
||||
|
||||
/// shoves inflict this to indicate the next shove while this is in effect should disarm guns
|
||||
#define STATUS_EFFECT_OFF_BALANCE /datum/status_effect/off_balance
|
||||
|
||||
|
||||
@@ -146,11 +146,11 @@
|
||||
#define SSAIR_EQUALIZE 8
|
||||
#define SSAIR_ACTIVETURFS 9
|
||||
|
||||
// |= on overlays is not actually guaranteed to not add same appearances but we're optimistically using it anyway.
|
||||
#define COMPILE_OVERLAYS(A)\
|
||||
if (TRUE) {\
|
||||
var/list/ad = A.add_overlays;\
|
||||
var/list/rm = A.remove_overlays;\
|
||||
var/list/po = A.priority_overlays;\
|
||||
if(LAZYLEN(rm)){\
|
||||
A.overlays -= rm;\
|
||||
A.remove_overlays = null;\
|
||||
@@ -159,11 +159,5 @@
|
||||
A.overlays |= ad;\
|
||||
A.add_overlays = null;\
|
||||
}\
|
||||
if(LAZYLEN(po)){\
|
||||
A.overlays |= po;\
|
||||
}\
|
||||
else{\
|
||||
A.priority_overlays = null;\
|
||||
}\
|
||||
A.flags_1 &= ~OVERLAY_QUEUED_1;\
|
||||
}
|
||||
|
||||
+28
-4
@@ -1,4 +1,28 @@
|
||||
#define UI_INTERACTIVE 2 // Green/Interactive
|
||||
#define UI_UPDATE 1 // Orange/Updates Only
|
||||
#define UI_DISABLED 0 // Red/Disabled
|
||||
#define UI_CLOSE -1 // Closed
|
||||
/// Green eye; fully interactive
|
||||
#define UI_INTERACTIVE 2
|
||||
/// Orange eye; updates but is not interactive
|
||||
#define UI_UPDATE 1
|
||||
/// Red eye; disabled, does not update
|
||||
#define UI_DISABLED 0
|
||||
/// UI Should close
|
||||
#define UI_CLOSE -1
|
||||
|
||||
/// Maximum number of windows that can be suspended/reused
|
||||
#define TGUI_WINDOW_SOFT_LIMIT 5
|
||||
/// Maximum number of open windows
|
||||
#define TGUI_WINDOW_HARD_LIMIT 9
|
||||
|
||||
/// Maximum ping timeout allowed to detect zombie windows
|
||||
#define TGUI_PING_TIMEOUT 4 SECONDS
|
||||
|
||||
/// Window does not exist
|
||||
#define TGUI_WINDOW_CLOSED 0
|
||||
/// Window was just opened, but is still not ready to be sent data
|
||||
#define TGUI_WINDOW_LOADING 1
|
||||
/// Window is free and ready to receive data
|
||||
#define TGUI_WINDOW_READY 2
|
||||
|
||||
/// Get a window id based on the provided pool index
|
||||
#define TGUI_WINDOW_ID(index) "tgui-window-[index]"
|
||||
/// Get a pool index of the provided window id
|
||||
#define TGUI_WINDOW_INDEX(window_id) text2num(copytext(window_id, 13))
|
||||
|
||||
@@ -104,7 +104,9 @@
|
||||
#define TRAIT_RESISTCOLD "resist_cold"
|
||||
#define TRAIT_RESISTHIGHPRESSURE "resist_high_pressure"
|
||||
#define TRAIT_RESISTLOWPRESSURE "resist_low_pressure"
|
||||
#define TRAIT_BOMBIMMUNE "bomb_immunity"
|
||||
#define TRAIT_RADIMMUNE "rad_immunity"
|
||||
#define TRAIT_GENELESS "geneless"
|
||||
#define TRAIT_VIRUSIMMUNE "virus_immunity"
|
||||
#define TRAIT_PIERCEIMMUNE "pierce_immunity"
|
||||
#define TRAIT_NODISMEMBER "dismember_immunity"
|
||||
@@ -178,6 +180,7 @@
|
||||
#define TRAIT_FREERUNNING "freerunning"
|
||||
#define TRAIT_SKITTISH "skittish"
|
||||
#define TRAIT_POOR_AIM "poor_aim"
|
||||
#define TRAIT_INSANE_AIM "insane_aim" //they don't miss. they never miss. it was all part of their immaculate plan.
|
||||
#define TRAIT_PROSOPAGNOSIA "prosopagnosia"
|
||||
#define TRAIT_DRUNK_HEALING "drunk_healing"
|
||||
#define TRAIT_TAGGER "tagger"
|
||||
@@ -202,7 +205,7 @@
|
||||
#define TRAIT_NO_ALCOHOL "alcohol_intolerance"
|
||||
#define TRAIT_MUTATION_STASIS "mutation_stasis" //Prevents processed genetics mutations from processing.
|
||||
#define TRAIT_FAST_PUMP "fast_pump"
|
||||
#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good....
|
||||
#define TRAIT_NICE_SHOT "nice_shot" //hnnnnnnnggggg..... you're pretty good...
|
||||
|
||||
// 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)
|
||||
@@ -256,6 +259,7 @@
|
||||
#define CURSED_ITEM_TRAIT "cursed-item" // The item is magically cursed
|
||||
#define ABSTRACT_ITEM_TRAIT "abstract-item"
|
||||
#define STATUS_EFFECT_TRAIT "status-effect"
|
||||
#define CLOTHING_TRAIT "clothing"
|
||||
#define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention
|
||||
#define GHOSTROLE_TRAIT "ghostrole"
|
||||
#define APHRO_TRAIT "aphro"
|
||||
@@ -310,4 +314,4 @@
|
||||
#define ACTIVE_BLOCK_TRAIT "active_block"
|
||||
/// This trait is added by the parry system.
|
||||
#define ACTIVE_PARRY_TRAIT "active_parry"
|
||||
#define STICKY_NODROP "sticky-nodrop" //sticky nodrop sounds like a bad soundcloud rapper's name
|
||||
#define STICKY_NODROP "sticky-nodrop" //sticky nodrop sounds like a bad soundcloud rapper's name
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
#define VV_HK_MARK "mark"
|
||||
#define VV_HK_ADDCOMPONENT "addcomponent"
|
||||
#define VV_HK_MODIFY_TRAITS "modtraits"
|
||||
#define VV_HK_VIEW_REFERENCES "viewreferences"
|
||||
|
||||
// /datum/gas_mixture
|
||||
#define VV_HK_SET_MOLES "set_moles"
|
||||
|
||||
@@ -201,9 +201,18 @@
|
||||
WRITE_LOG(log, "Starting up round ID [GLOB.round_id].\n-------------------------")
|
||||
|
||||
/* ui logging */
|
||||
|
||||
/proc/log_tgui(text)
|
||||
WRITE_LOG(GLOB.tgui_log, text)
|
||||
/proc/log_tgui(user_or_client, text)
|
||||
var/entry = ""
|
||||
if(!user_or_client)
|
||||
entry += "no user"
|
||||
else if(istype(user_or_client, /mob))
|
||||
var/mob/user = user_or_client
|
||||
entry += "[user.ckey] (as [user])"
|
||||
else if(istype(user_or_client, /client))
|
||||
var/client/client = user_or_client
|
||||
entry += "[client.ckey]"
|
||||
entry += ":\n[text]"
|
||||
WRITE_LOG(GLOB.tgui_log, entry)
|
||||
|
||||
/* Close open log handles. This should be called as late as possible, and no logging should hapen after. */
|
||||
/proc/shutdown_logging()
|
||||
|
||||
+13
-6
@@ -85,9 +85,6 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
/proc/cmp_advdisease_resistance_asc(datum/disease/advance/A, datum/disease/advance/B)
|
||||
return A.totalResistance() - B.totalResistance()
|
||||
|
||||
/proc/cmp_job_display_asc(datum/job/A, datum/job/B)
|
||||
return A.display_order - B.display_order
|
||||
|
||||
/proc/cmp_uplink_items_dsc(datum/uplink_item/A, datum/uplink_item/B)
|
||||
return sorttext(initial(B.name), initial(A.name))
|
||||
|
||||
@@ -97,9 +94,6 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
/proc/cmp_numbered_displays_name_dsc(datum/numbered_display/A, datum/numbered_display/B)
|
||||
return sorttext(B.sample_object.name, A.sample_object.name)
|
||||
|
||||
/proc/cmp_reagents_asc(datum/reagent/a, datum/reagent/b)
|
||||
return sorttext(initial(b.name),initial(a.name))
|
||||
|
||||
/proc/cmp_quirk_asc(datum/quirk/A, datum/quirk/B)
|
||||
var/a_sign = num2sign(initial(A.value) * -1)
|
||||
var/b_sign = num2sign(initial(B.value) * -1)
|
||||
@@ -133,3 +127,16 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
return A.required_temp - B.required_temp //return coldest
|
||||
else
|
||||
return B.required_temp - A.required_temp //return hottest
|
||||
|
||||
|
||||
/proc/cmp_mob_realname_dsc(mob/A,mob/B)
|
||||
return sorttext(A.real_name,B.real_name)
|
||||
|
||||
/proc/cmp_job_display_asc(datum/job/A, datum/job/B)
|
||||
return A.display_order - B.display_order
|
||||
|
||||
/proc/cmp_reagents_asc(datum/reagent/a, datum/reagent/b)
|
||||
return sorttext(initial(b.name),initial(a.name))
|
||||
|
||||
/proc/cmp_typepaths_asc(A, B)
|
||||
return sorttext("[B]","[A]")
|
||||
|
||||
@@ -37,10 +37,10 @@
|
||||
//CIT CHANGES START HERE, ADDS SNOWFLAKE BODYPARTS AND MORE
|
||||
//mammal bodyparts (fucking furries)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_snouts, GLOB.mam_snouts_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails_animated, GLOB.mam_tails_animated_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/mam_tails, GLOB.mam_tails_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts/mam_snouts, GLOB.mam_snouts_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails_animated/mam_tails_animated, GLOB.mam_tails_animated_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/taur, GLOB.taur_list)
|
||||
//xeno parts (hiss?)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
|
||||
|
||||
+14
-7
@@ -93,16 +93,16 @@
|
||||
if(!GLOB.mam_body_markings_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
|
||||
if(!GLOB.mam_tails_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/mam_tails, GLOB.mam_tails_list)
|
||||
if(!GLOB.mam_ears_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
|
||||
if(!GLOB.mam_snouts_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_snouts, GLOB.mam_snouts_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts/mam_snouts, GLOB.mam_snouts_list)
|
||||
|
||||
//snowflake check so people's ckey features don't get randomly put on unmonkeys/spawns
|
||||
var/list/snowflake_mam_tails_list = list()
|
||||
for(var/mtpath in GLOB.mam_tails_list)
|
||||
var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[mtpath]
|
||||
var/datum/sprite_accessory/tails/mam_tails/instance = GLOB.mam_tails_list[mtpath]
|
||||
if(istype(instance, /datum/sprite_accessory))
|
||||
var/datum/sprite_accessory/S = instance
|
||||
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
|
||||
@@ -120,7 +120,7 @@
|
||||
snowflake_markings_list[S.name] = mmpath
|
||||
var/list/snowflake_ears_list = list()
|
||||
for(var/mepath in GLOB.mam_ears_list)
|
||||
var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[mepath]
|
||||
var/datum/sprite_accessory/ears/mam_ears/instance = GLOB.mam_ears_list[mepath]
|
||||
if(istype(instance, /datum/sprite_accessory))
|
||||
var/datum/sprite_accessory/S = instance
|
||||
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
|
||||
@@ -129,7 +129,7 @@
|
||||
snowflake_ears_list[S.name] = mepath
|
||||
var/list/snowflake_mam_snouts_list = list()
|
||||
for(var/mspath in GLOB.mam_snouts_list)
|
||||
var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[mspath]
|
||||
var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.mam_snouts_list[mspath]
|
||||
if(istype(instance, /datum/sprite_accessory))
|
||||
var/datum/sprite_accessory/S = instance
|
||||
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
|
||||
@@ -138,7 +138,7 @@
|
||||
snowflake_mam_snouts_list[S.name] = mspath
|
||||
var/list/snowflake_ipc_antenna_list = list()
|
||||
for(var/mspath in GLOB.ipc_antennas_list)
|
||||
var/datum/sprite_accessory/mam_snouts/instance = GLOB.ipc_antennas_list[mspath]
|
||||
var/datum/sprite_accessory/snouts/mam_snouts/instance = GLOB.ipc_antennas_list[mspath]
|
||||
if(istype(instance, /datum/sprite_accessory))
|
||||
var/datum/sprite_accessory/S = instance
|
||||
if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies))
|
||||
@@ -264,6 +264,13 @@
|
||||
if(!findname(.))
|
||||
break
|
||||
|
||||
/proc/random_unique_ethereal_name(attempts_to_find_unique_name=10)
|
||||
for(var/i in 1 to attempts_to_find_unique_name)
|
||||
. = capitalize(ethereal_name())
|
||||
|
||||
if(!findname(.))
|
||||
break
|
||||
|
||||
/proc/random_unique_moth_name(attempts_to_find_unique_name=10)
|
||||
for(var/i in 1 to attempts_to_find_unique_name)
|
||||
. = capitalize(pick(GLOB.moth_first)) + " " + capitalize(pick(GLOB.moth_last))
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
else
|
||||
return "[pick(GLOB.lizard_names_female)]-[pick(GLOB.lizard_names_female)]"
|
||||
|
||||
/proc/ethereal_name()
|
||||
var/tempname = "[pick(GLOB.ethereal_names)] [random_capital_letter()]"
|
||||
if(prob(65))
|
||||
tempname += random_capital_letter()
|
||||
return tempname
|
||||
|
||||
/proc/plasmaman_name()
|
||||
return "[pick(GLOB.plasmaman_names)] \Roman[rand(1,99)]"
|
||||
|
||||
|
||||
@@ -776,6 +776,10 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
|
||||
else
|
||||
return "[number]\th"
|
||||
|
||||
|
||||
/proc/random_capital_letter()
|
||||
return uppertext(pick(GLOB.alphabet))
|
||||
|
||||
/proc/unintelligize(message)
|
||||
var/regex/word_boundaries = regex(@"\b[\S]+\b", "g")
|
||||
var/prefix = message[1]
|
||||
|
||||
@@ -11,15 +11,28 @@
|
||||
#ifdef TESTING
|
||||
#define DATUMVAR_DEBUGGING_MODE
|
||||
|
||||
//#define GC_FAILURE_HARD_LOOKUP //makes paths that fail to GC call find_references before del'ing.
|
||||
//implies FIND_REF_NO_CHECK_TICK
|
||||
/*
|
||||
* Enables extools-powered reference tracking system, letting you see what is referencing objects that refuse to hard delete.
|
||||
*
|
||||
* * Requires TESTING to be defined to work.
|
||||
*/
|
||||
//#define REFERENCE_TRACKING
|
||||
|
||||
//#define FIND_REF_NO_CHECK_TICK //Sets world.loop_checks to false and prevents find references from sleeping
|
||||
///Method of tracking references without using extools. Slower, kept to avoid over-reliance on extools.
|
||||
//#define LEGACY_REFERENCE_TRACKING
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
|
||||
///Use the legacy reference on things hard deleting by default.
|
||||
//#define GC_FAILURE_HARD_LOOKUP
|
||||
#ifdef GC_FAILURE_HARD_LOOKUP
|
||||
#define FIND_REF_NO_CHECK_TICK
|
||||
#endif //ifdef GC_FAILURE_HARD_LOOKUP
|
||||
|
||||
#endif //ifdef LEGACY_REFERENCE_TRACKING
|
||||
|
||||
//#define VISUALIZE_ACTIVE_TURFS //Highlights atmos active turfs in green
|
||||
#endif
|
||||
|
||||
#endif //ifdef TESTING
|
||||
//#define UNIT_TESTS //Enables unit tests via TEST_RUN_PARAMETER
|
||||
|
||||
#ifndef PRELOAD_RSC //set to:
|
||||
|
||||
@@ -9,4 +9,8 @@ GLOBAL_DATUM(start_state, /datum/station_state) // Used in round-end report
|
||||
|
||||
|
||||
//TODO clear this one up too
|
||||
GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult)
|
||||
GLOBAL_DATUM(cult_narsie, /obj/singularity/narsie/large/cult)
|
||||
|
||||
|
||||
///We want reality_smash_tracker to exist only once and be accesable from anywhere.
|
||||
GLOBAL_DATUM_INIT(reality_smash_track, /datum/reality_smash_tracker, new)
|
||||
|
||||
@@ -40,6 +40,46 @@ GLOBAL_LIST_EMPTY(insect_fluffs_list)
|
||||
GLOBAL_LIST_EMPTY(insect_markings_list)
|
||||
GLOBAL_LIST_EMPTY(caps_list)
|
||||
|
||||
//a way to index the right bodypart list given the type of bodypart
|
||||
GLOBAL_LIST_INIT(mutant_reference_list, list(
|
||||
"tail_lizard" = GLOB.tails_list_lizard,
|
||||
"waggingtail_lizard" = GLOB.animated_tails_list_lizard,
|
||||
"tail_human" = GLOB.tails_list_human,
|
||||
"waggingtail_human" = GLOB.animated_tails_list_human,
|
||||
"spines" = GLOB.spines_list,
|
||||
"waggingspines" = GLOB.animated_spines_list,
|
||||
"snout" = GLOB.snouts_list,
|
||||
"frills" = GLOB.frills_list,
|
||||
"horns" = GLOB.horns_list,
|
||||
"ears" = GLOB.ears_list,
|
||||
"body_markings" = GLOB.body_markings_list,
|
||||
"wings" = GLOB.wings_list,
|
||||
"wingsopen" = GLOB.wings_open_list,
|
||||
"deco_wings" = GLOB.deco_wings_list,
|
||||
"legs" = GLOB.legs_list,
|
||||
"insect_wings" = GLOB.insect_wings_list,
|
||||
"insect_fluff" = GLOB.insect_fluffs_list,
|
||||
"insect_markings" = GLOB.insect_markings_list,
|
||||
"caps" = GLOB.caps_list,
|
||||
"ipc_screen" = GLOB.ipc_screens_list,
|
||||
"ipc_antenna" = GLOB.ipc_antennas_list,
|
||||
"mam_tail" = GLOB.mam_tails_list,
|
||||
"mam_waggingtail" = GLOB.mam_tails_animated_list,
|
||||
"mam_body_markings" = GLOB.mam_body_markings_list,
|
||||
"mam_ears" = GLOB.mam_ears_list,
|
||||
"mam_snouts" = GLOB.mam_snouts_list,
|
||||
"taur" = GLOB.taur_list,
|
||||
"xenodorsal" = GLOB.xeno_dorsal_list,
|
||||
"xenohead" = GLOB.xeno_head_list,
|
||||
"xenotail" = GLOB.xeno_tail_list))
|
||||
|
||||
//references wag types to regular types, wings open to wings, etc
|
||||
GLOBAL_LIST_INIT(mutant_transform_list, list("wingsopen" = "wings",
|
||||
"waggingtail_human" = "tail_human",
|
||||
"waggingtail_lizard" = "tail_lizard",
|
||||
"waggingspines" = "spines",
|
||||
"mam_waggingtail" = "mam_tail"))
|
||||
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
|
||||
GLOBAL_LIST_INIT(ghost_forms_with_accessories_list, list("ghost")) //stores the ghost forms that support hair and other such things
|
||||
|
||||
@@ -231,4 +271,10 @@ GLOBAL_LIST_INIT(speech_verbs, list("default","says","gibbers", "states", "chitt
|
||||
|
||||
GLOBAL_LIST_INIT(roundstart_tongues, list("default","human tongue" = /obj/item/organ/tongue, "lizard tongue" = /obj/item/organ/tongue/lizard, "skeleton tongue" = /obj/item/organ/tongue/bone, "fly tongue" = /obj/item/organ/tongue/fly, "ipc tongue" = /obj/item/organ/tongue/robot/ipc))
|
||||
|
||||
|
||||
//locked parts are those that your picked species requires to have
|
||||
//unlocked parts are those that anyone can choose on customisation regardless
|
||||
//parts not in unlocked, but in all, are thus locked
|
||||
GLOBAL_LIST_INIT(all_mutant_parts, list("tail_lizard" = "Tail", "mam_tail" = "Tail", "tail_human" = "Tail", "snout" = "Snout", "frills" = "Frills", "spines" = "Spines", "body_markings" = "Body Markings", "mam_body_markings" = "Species Markings" , "mam_ears" = "Ears", "ears" = "Ears", "mam_snouts" = "Snout", "legs" = "Legs", "deco_wings" = "Decorative Wings", "insect_wings" = "Insect Wings", "insect_fluff" = "Insect Fluff", "taur" = "Tauric Body", "insect_markings" = "Insect Markings", "wings" = "Wings", "xenohead" = "Caste Head", "xenotail" = "Tail", "xenodorsal" = "Dorsal Spines", "ipc_screen" = "Screen", "ipc_antenna" = "Antenna", "meat_type" = "Meat Type", "horns" = "Horns"))
|
||||
GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns", "insect_fluff"))
|
||||
//parts in either of the above two lists that require a second option that allows them to be coloured
|
||||
GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color"))
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
GLOBAL_LIST_INIT(loadout_categories, list(
|
||||
CATEGORY_BACKPACK = list(SUBCATEGORY_BACKPACK_GENERAL, SUBCATEGORY_BACKPACK_TOYS),
|
||||
CATEGORY_NECK = list(SUBCATEGORY_NECK_GENERAL, SUBCATEGORY_NECK_TIE, SUBCATEGORY_NECK_SCARVES),
|
||||
CATEGORY_MASK = NOSUBCATEGORY,
|
||||
CATEGORY_HANDS = NOSUBCATEGORY,
|
||||
CATEGORY_UNIFORM = list(SUBCATEGORY_UNIFORM_GENERAL, SUBCATEGORY_UNIFORM_JOBS, SUBCATEGORY_UNIFORM_SUITS, SUBCATEGORY_UNIFORM_SKIRTS, SUBCATEGORY_UNIFORM_DRESSES, SUBCATEGORY_UNIFORM_SWEATERS, SUBCATEGORY_UNIFORM_PANTS, SUBCATEGORY_UNIFORM_SHORTS),
|
||||
CATEGORY_SUIT = list(SUBCATEGORY_SUIT_GENERAL, SUBCATEGORY_SUIT_COATS, SUBCATEGORY_SUIT_JACKETS, SUBCATEGORY_SUIT_JOBS),
|
||||
CATEGORY_HEAD = list(SUBCATEGORY_HEAD_GENERAL, SUBCATEGORY_HEAD_JOBS),
|
||||
CATEGORY_SHOES = NOSUBCATEGORY,
|
||||
CATEGORY_GLOVES = NOSUBCATEGORY,
|
||||
CATEGORY_GLASSES = NOSUBCATEGORY,
|
||||
CATEGORY_DONATOR = NOSUBCATEGORY
|
||||
LOADOUT_CATEGORY_BACKPACK = list(LOADOUT_SUBCATEGORY_BACKPACK_GENERAL, LOADOUT_SUBCATEGORY_BACKPACK_TOYS),
|
||||
LOADOUT_CATEGORY_NECK = list(LOADOUT_SUBCATEGORY_NECK_GENERAL, LOADOUT_SUBCATEGORY_NECK_TIE, LOADOUT_SUBCATEGORY_NECK_SCARVES),
|
||||
LOADOUT_CATEGORY_MASK = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_HANDS = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_UNIFORM = list(LOADOUT_SUBCATEGORY_UNIFORM_GENERAL, LOADOUT_SUBCATEGORY_UNIFORM_JOBS, LOADOUT_SUBCATEGORY_UNIFORM_SUITS, LOADOUT_SUBCATEGORY_UNIFORM_SKIRTS, LOADOUT_SUBCATEGORY_UNIFORM_DRESSES, LOADOUT_SUBCATEGORY_UNIFORM_SWEATERS, LOADOUT_SUBCATEGORY_UNIFORM_PANTS, LOADOUT_SUBCATEGORY_UNIFORM_SHORTS),
|
||||
LOADOUT_CATEGORY_SUIT = list(LOADOUT_SUBCATEGORY_SUIT_GENERAL, LOADOUT_SUBCATEGORY_SUIT_COATS, LOADOUT_SUBCATEGORY_SUIT_JACKETS, LOADOUT_SUBCATEGORY_SUIT_JOBS),
|
||||
LOADOUT_CATEGORY_HEAD = list(LOADOUT_SUBCATEGORY_HEAD_GENERAL, LOADOUT_SUBCATEGORY_HEAD_JOBS),
|
||||
LOADOUT_CATEGORY_SHOES = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_GLOVES = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_GLASSES = LOADOUT_SUBCATEGORIES_NONE,
|
||||
LOADOUT_CATEGORY_DONATOR = LOADOUT_SUBCATEGORIES_NONE
|
||||
))
|
||||
|
||||
@@ -17,6 +17,7 @@ GLOBAL_LIST_INIT(golem_names, world.file2list("strings/names/golem.txt"))
|
||||
GLOBAL_LIST_INIT(moth_first, world.file2list("strings/names/moth_first.txt"))
|
||||
GLOBAL_LIST_INIT(moth_last, world.file2list("strings/names/moth_last.txt"))
|
||||
GLOBAL_LIST_INIT(plasmaman_names, world.file2list("strings/names/plasmaman.txt"))
|
||||
GLOBAL_LIST_INIT(ethereal_names, world.file2list("strings/names/ethereal.txt"))
|
||||
GLOBAL_LIST_INIT(posibrain_names, world.file2list("strings/names/posibrain.txt"))
|
||||
GLOBAL_LIST_INIT(nightmare_names, world.file2list("strings/names/nightmare.txt"))
|
||||
GLOBAL_LIST_INIT(megacarp_first_names, world.file2list("strings/names/megacarp1.txt"))
|
||||
|
||||
@@ -37,7 +37,9 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_RESISTCOLD" = TRAIT_RESISTCOLD,
|
||||
"TRAIT_RESISTHIGHPRESSURE" = TRAIT_RESISTHIGHPRESSURE,
|
||||
"TRAIT_RESISTLOWPRESSURE" = TRAIT_RESISTLOWPRESSURE,
|
||||
"TRAIT_BOMBIMMUNE" = TRAIT_BOMBIMMUNE,
|
||||
"TRAIT_RADIMMUNE" = TRAIT_RADIMMUNE,
|
||||
"TRAIT_GENELESS" = TRAIT_GENELESS,
|
||||
"TRAIT_VIRUSIMMUNE" = TRAIT_VIRUSIMMUNE,
|
||||
"TRAIT_PIERCEIMMUNE" = TRAIT_PIERCEIMMUNE,
|
||||
"TRAIT_NODISMEMBER" = TRAIT_NODISMEMBER,
|
||||
|
||||
@@ -493,6 +493,16 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
|
||||
desc = "Unit's power cell is running low. Recharging stations are available in robotics, the dormitory bathrooms, and the AI satellite."
|
||||
icon_state = "lowcell"
|
||||
|
||||
/obj/screen/alert/etherealcharge
|
||||
name = "Low Blood Charge"
|
||||
desc = "Your blood's electric charge is running low, find a source of charge for your blood. Use a recharging station found in robotics or the dormitory bathrooms, or eat some Ethereal-friendly food."
|
||||
icon_state = "etherealcharge"
|
||||
|
||||
/obj/screen/alert/ethereal_overcharge
|
||||
name = "Blood Overcharge"
|
||||
desc = "Your blood's electric charge is becoming dangerously high, find an outlet for your energy. Use Grab Intent on an APC to channel your energy into it."
|
||||
icon_state = "ethereal_overcharge"
|
||||
|
||||
//Need to cover all use cases - emag, illegal upgrade module, malf AI hack, traitor cyborg
|
||||
/obj/screen/alert/hacked
|
||||
name = "Hacked"
|
||||
|
||||
@@ -122,13 +122,13 @@
|
||||
if(pixel_size == pixels)
|
||||
return
|
||||
pixel_size = pixels
|
||||
cut_overlays(TRUE)
|
||||
cut_overlays()
|
||||
//our icon size is 32 pixels.
|
||||
transform = matrix((pixels - (VOLUMETRIC_STORAGE_BOX_BORDER_SIZE * 2)) / VOLUMETRIC_STORAGE_BOX_ICON_SIZE, 0, 0, 0, 1, 0)
|
||||
left.pixel_x = -((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) - VOLUMETRIC_STORAGE_BOX_BORDER_SIZE
|
||||
right.pixel_x = ((pixels - VOLUMETRIC_STORAGE_BOX_ICON_SIZE) * 0.5) + VOLUMETRIC_STORAGE_BOX_BORDER_SIZE
|
||||
add_overlay(left, TRUE)
|
||||
add_overlay(right, TRUE)
|
||||
add_overlay(left)
|
||||
add_overlay(right)
|
||||
|
||||
/obj/screen/storage/volumetric_edge
|
||||
layer = VOLUMETRIC_STORAGE_BOX_LAYER
|
||||
|
||||
@@ -98,6 +98,11 @@
|
||||
config_entry_value = 6
|
||||
min_val = 1
|
||||
|
||||
/datum/config_entry/number/ecult_scaling_coeff //how much does the amount of players get divided by to determine e_cult
|
||||
config_entry_value = 6
|
||||
integer = FALSE
|
||||
min_val = 1
|
||||
|
||||
/datum/config_entry/number/security_scaling_coeff //how much does the amount of players get divided by to determine open security officer positions
|
||||
config_entry_value = 8
|
||||
min_val = 1
|
||||
@@ -529,4 +534,4 @@
|
||||
config_entry_value = 6
|
||||
|
||||
/datum/config_entry/number/max_shuttle_size
|
||||
config_entry_value = 250
|
||||
config_entry_value = 500
|
||||
|
||||
@@ -29,7 +29,7 @@ SUBSYSTEM_DEF(acid)
|
||||
|
||||
if(O.acid_level && O.acid_processing())
|
||||
else
|
||||
O.cut_overlay(GLOB.acid_overlay, TRUE)
|
||||
O.update_icon()
|
||||
processing -= O
|
||||
|
||||
if (MC_TICK_CHECK)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
PROCESSING_SUBSYSTEM_DEF(fluids)
|
||||
name = "Fluids"
|
||||
wait = 20
|
||||
stat_tag = "FD" //its actually Fluid Ducts
|
||||
flags = SS_NO_INIT | SS_TICKER
|
||||
@@ -25,7 +25,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
//Queue
|
||||
var/list/queues
|
||||
|
||||
#ifdef TESTING
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
var/list/reference_find_on_fail = list()
|
||||
var/list/reference_find_on_fail_types = list()
|
||||
#endif
|
||||
@@ -134,7 +134,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
++gcedlasttick
|
||||
++totalgcs
|
||||
pass_counts[level]++
|
||||
#ifdef TESTING
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
reference_find_on_fail -= refID //It's deleted we don't care anymore.
|
||||
#endif
|
||||
if (MC_TICK_CHECK)
|
||||
@@ -145,7 +145,9 @@ SUBSYSTEM_DEF(garbage)
|
||||
fail_counts[level]++
|
||||
switch (level)
|
||||
if (GC_QUEUE_CHECK)
|
||||
#ifdef TESTING
|
||||
#ifdef REFERENCE_TRACKING
|
||||
D.find_references()
|
||||
#elif defined(LEGACY_REFERENCE_TRACKING)
|
||||
if(reference_find_on_fail[refID])
|
||||
D.find_references()
|
||||
#ifdef GC_FAILURE_HARD_LOOKUP
|
||||
@@ -156,7 +158,19 @@ SUBSYSTEM_DEF(garbage)
|
||||
#endif
|
||||
var/type = D.type
|
||||
var/datum/qdel_item/I = items[type]
|
||||
#ifdef TESTING
|
||||
log_world("## TESTING: GC: -- \ref[D] | [type] was unable to be GC'd --")
|
||||
for(var/c in GLOB.admins) //Using testing() here would fill the logs with ADMIN_VV garbage
|
||||
var/client/admin = c
|
||||
if(!check_rights_for(admin, R_ADMIN))
|
||||
continue
|
||||
to_chat(admin, "## TESTING: GC: -- [ADMIN_VV(D)] | [type] was unable to be GC'd --")
|
||||
testing("GC: -- \ref[src] | [type] was unable to be GC'd --")
|
||||
#endif
|
||||
#ifdef REFERENCE_TRACKING
|
||||
GLOB.deletion_failures += D //It should no longer be bothered by the GC, manual deletion only.
|
||||
continue
|
||||
#endif
|
||||
I.failures++
|
||||
if (GC_QUEUE_HARDDELETE)
|
||||
HardDelete(D)
|
||||
@@ -181,7 +195,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
var/gctime = world.time
|
||||
var/refid = "\ref[D]"
|
||||
|
||||
#ifdef TESTING
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
if(reference_find_on_fail_types[D.type])
|
||||
reference_find_on_fail["\ref[D]"] = TRUE
|
||||
#endif
|
||||
@@ -193,7 +207,7 @@ SUBSYSTEM_DEF(garbage)
|
||||
|
||||
queue[refid] = gctime
|
||||
|
||||
#ifdef TESTING
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
/datum/controller/subsystem/garbage/proc/add_type_to_findref(type)
|
||||
if(!ispath(type))
|
||||
return "NOT A VAILD PATH"
|
||||
@@ -260,12 +274,6 @@ SUBSYSTEM_DEF(garbage)
|
||||
/datum/qdel_item/New(mytype)
|
||||
name = "[mytype]"
|
||||
|
||||
#ifdef TESTING
|
||||
/proc/qdel_and_find_ref_if_fail(datum/D, force = FALSE)
|
||||
SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE
|
||||
qdel(D, force)
|
||||
#endif
|
||||
|
||||
// Should be treated as a replacement for the 'del' keyword.
|
||||
// Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
|
||||
/proc/qdel(datum/D, force=FALSE, ...)
|
||||
@@ -319,16 +327,13 @@ SUBSYSTEM_DEF(garbage)
|
||||
SSgarbage.Queue(D, GC_QUEUE_HARDDELETE)
|
||||
if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste.
|
||||
SSgarbage.HardDelete(D)
|
||||
if (QDEL_HINT_FINDREFERENCE)//qdel will, if TESTING is enabled, display all references to this object, then queue the object for deletion.
|
||||
#ifdef LEGACY_REFERENCE_TRACKING
|
||||
if (QDEL_HINT_FINDREFERENCE) //qdel will, if LEGACY_REFERENCE_TRACKING is enabled, display all references to this object, then queue the object for deletion.
|
||||
SSgarbage.Queue(D)
|
||||
#ifdef TESTING
|
||||
D.find_references()
|
||||
#endif
|
||||
if (QDEL_HINT_IFFAIL_FINDREFERENCE)
|
||||
SSgarbage.Queue(D)
|
||||
#ifdef TESTING
|
||||
SSgarbage.reference_find_on_fail["\ref[D]"] = TRUE
|
||||
#endif
|
||||
#endif
|
||||
else
|
||||
#ifdef TESTING
|
||||
if(!I.no_hint)
|
||||
@@ -339,119 +344,6 @@ SUBSYSTEM_DEF(garbage)
|
||||
else if(D.gc_destroyed == GC_CURRENTLY_BEING_QDELETED)
|
||||
CRASH("[D.type] destroy proc was called multiple times, likely due to a qdel loop in the Destroy logic")
|
||||
|
||||
#ifdef TESTING
|
||||
|
||||
/datum/verb/find_refs()
|
||||
set category = "Debug"
|
||||
set name = "Find References"
|
||||
set src in world
|
||||
|
||||
find_references(FALSE)
|
||||
|
||||
/datum/proc/find_references(skip_alert)
|
||||
running_find_references = type
|
||||
if(usr && usr.client)
|
||||
if(usr.client.running_find_references)
|
||||
testing("CANCELLED search for references to a [usr.client.running_find_references].")
|
||||
usr.client.running_find_references = null
|
||||
running_find_references = null
|
||||
//restart the garbage collector
|
||||
SSgarbage.can_fire = 1
|
||||
SSgarbage.next_fire = world.time + world.tick_lag
|
||||
return
|
||||
|
||||
if(!skip_alert)
|
||||
if(alert("Running this will lock everything up for about 5 minutes. Would you like to begin the search?", "Find References", "Yes", "No") == "No")
|
||||
running_find_references = null
|
||||
return
|
||||
|
||||
//this keeps the garbage collector from failing to collect objects being searched for in here
|
||||
SSgarbage.can_fire = 0
|
||||
|
||||
if(usr && usr.client)
|
||||
usr.client.running_find_references = type
|
||||
|
||||
testing("Beginning search for references to a [type].")
|
||||
last_find_references = world.time
|
||||
|
||||
DoSearchVar(GLOB) //globals
|
||||
for(var/datum/thing in world) //atoms (don't beleive it's lies)
|
||||
DoSearchVar(thing, "World -> [thing]")
|
||||
|
||||
for (var/datum/thing) //datums
|
||||
DoSearchVar(thing, "World -> [thing]")
|
||||
|
||||
for (var/client/thing) //clients
|
||||
DoSearchVar(thing, "World -> [thing]")
|
||||
|
||||
testing("Completed search for references to a [type].")
|
||||
if(usr && usr.client)
|
||||
usr.client.running_find_references = null
|
||||
running_find_references = null
|
||||
|
||||
//restart the garbage collector
|
||||
SSgarbage.can_fire = 1
|
||||
SSgarbage.next_fire = world.time + world.tick_lag
|
||||
|
||||
/datum/verb/qdel_then_find_references()
|
||||
set category = "Debug"
|
||||
set name = "qdel() then Find References"
|
||||
set src in world
|
||||
|
||||
qdel(src, TRUE) //Force.
|
||||
if(!running_find_references)
|
||||
find_references(TRUE)
|
||||
|
||||
/datum/verb/qdel_then_if_fail_find_references()
|
||||
set category = "Debug"
|
||||
set name = "qdel() then Find References if GC failure"
|
||||
set src in world
|
||||
|
||||
qdel_and_find_ref_if_fail(src, TRUE)
|
||||
|
||||
/datum/proc/DoSearchVar(X, Xname, recursive_limit = 64)
|
||||
if(usr && usr.client && !usr.client.running_find_references)
|
||||
return
|
||||
if (!recursive_limit)
|
||||
return
|
||||
|
||||
if(istype(X, /datum))
|
||||
var/datum/D = X
|
||||
if(D.last_find_references == last_find_references)
|
||||
return
|
||||
|
||||
D.last_find_references = last_find_references
|
||||
var/list/L = D.vars
|
||||
|
||||
for(var/varname in L)
|
||||
if (varname == "vars")
|
||||
continue
|
||||
var/variable = L[varname]
|
||||
|
||||
if(variable == src)
|
||||
testing("Found [src.type] \ref[src] in [D.type]'s [varname] var. [Xname]")
|
||||
|
||||
else if(islist(variable))
|
||||
DoSearchVar(variable, "[Xname] -> list", recursive_limit-1)
|
||||
|
||||
else if(islist(X))
|
||||
var/normal = IS_NORMAL_LIST(X)
|
||||
for(var/I in X)
|
||||
if (I == src)
|
||||
testing("Found [src.type] \ref[src] in list [Xname].")
|
||||
|
||||
else if (I && !isnum(I) && normal && X[I] == src)
|
||||
testing("Found [src.type] \ref[src] in list [Xname]\[[I]\]")
|
||||
|
||||
else if (islist(I))
|
||||
DoSearchVar(I, "[Xname] -> list", recursive_limit-1)
|
||||
|
||||
#ifndef FIND_REF_NO_CHECK_TICK
|
||||
CHECK_TICK
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef TESTING
|
||||
/proc/writeDatumCount()
|
||||
var/list/datums = list()
|
||||
|
||||
@@ -113,7 +113,7 @@ SUBSYSTEM_DEF(mapping)
|
||||
// needs to be whitelisted for underground too so place_below ruins work
|
||||
seedRuins(ice_ruins, CONFIG_GET(number/icemoon_budget), list(/area/icemoon/surface/outdoors/unexplored, /area/icemoon/underground/unexplored), ice_ruins_templates)
|
||||
for (var/ice_z in ice_ruins)
|
||||
spawn_rivers(ice_z, 4, /turf/open/openspace/icemoon, /area/icemoon/surface/outdoors/unexplored/rivers)
|
||||
spawn_rivers(ice_z, 4, /turf/open/transparent/openspace/icemoon, /area/icemoon/surface/outdoors/unexplored/rivers)
|
||||
|
||||
var/list/ice_ruins_underground = levels_by_trait(ZTRAIT_ICE_RUINS_UNDERGROUND)
|
||||
if (ice_ruins_underground.len)
|
||||
|
||||
@@ -114,67 +114,47 @@ SUBSYSTEM_DEF(overlays)
|
||||
|
||||
#define NOT_QUEUED_ALREADY (!(flags_1 & OVERLAY_QUEUED_1))
|
||||
#define QUEUE_FOR_COMPILE flags_1 |= OVERLAY_QUEUED_1; SSoverlays.queue += src;
|
||||
/atom/proc/cut_overlays(priority = FALSE)
|
||||
LAZYINITLIST(priority_overlays)
|
||||
/atom/proc/cut_overlays()
|
||||
LAZYINITLIST(remove_overlays)
|
||||
LAZYINITLIST(add_overlays)
|
||||
remove_overlays = overlays.Copy()
|
||||
add_overlays.Cut()
|
||||
|
||||
if(priority)
|
||||
priority_overlays.Cut()
|
||||
|
||||
//If not already queued for work and there are overlays to remove
|
||||
if(NOT_QUEUED_ALREADY && remove_overlays.len)
|
||||
QUEUE_FOR_COMPILE
|
||||
|
||||
/atom/proc/cut_overlay(list/overlays, priority)
|
||||
/atom/proc/cut_overlay(list/overlays)
|
||||
if(!overlays)
|
||||
return
|
||||
overlays = build_appearance_list(overlays)
|
||||
LAZYINITLIST(add_overlays) //always initialized after this point
|
||||
LAZYINITLIST(priority_overlays)
|
||||
LAZYINITLIST(remove_overlays)
|
||||
var/a_len = add_overlays.len
|
||||
var/r_len = remove_overlays.len
|
||||
var/p_len = priority_overlays.len
|
||||
remove_overlays += overlays
|
||||
add_overlays -= overlays
|
||||
|
||||
|
||||
if(priority)
|
||||
var/list/cached_priority = priority_overlays
|
||||
LAZYREMOVE(cached_priority, overlays)
|
||||
|
||||
var/fa_len = add_overlays.len
|
||||
var/fr_len = remove_overlays.len
|
||||
var/fp_len = priority_overlays.len
|
||||
|
||||
//If not already queued and there is work to be done
|
||||
if(NOT_QUEUED_ALREADY && (fa_len != a_len || fr_len != r_len || fp_len != p_len))
|
||||
if(NOT_QUEUED_ALREADY && (fa_len != a_len || fr_len != r_len))
|
||||
QUEUE_FOR_COMPILE
|
||||
|
||||
/atom/proc/add_overlay(list/overlays, priority = FALSE)
|
||||
/atom/proc/add_overlay(list/overlays)
|
||||
if(!overlays)
|
||||
return
|
||||
|
||||
overlays = build_appearance_list(overlays)
|
||||
|
||||
LAZYINITLIST(add_overlays) //always initialized after this point
|
||||
LAZYINITLIST(priority_overlays)
|
||||
var/a_len = add_overlays.len
|
||||
var/p_len = priority_overlays.len
|
||||
|
||||
if(priority)
|
||||
priority_overlays += overlays //or in the image. Can we use [image] = image?
|
||||
var/fp_len = priority_overlays.len
|
||||
if(NOT_QUEUED_ALREADY && fp_len != p_len)
|
||||
QUEUE_FOR_COMPILE
|
||||
else
|
||||
add_overlays += overlays
|
||||
var/fa_len = add_overlays.len
|
||||
if(NOT_QUEUED_ALREADY && fa_len != a_len)
|
||||
QUEUE_FOR_COMPILE
|
||||
add_overlays += overlays
|
||||
var/fa_len = add_overlays.len
|
||||
if(NOT_QUEUED_ALREADY && fa_len != a_len)
|
||||
QUEUE_FOR_COMPILE
|
||||
|
||||
/atom/proc/copy_overlays(atom/other, cut_old) //copys our_overlays from another atom
|
||||
if(!other)
|
||||
|
||||
@@ -775,12 +775,14 @@ SUBSYSTEM_DEF(shuttle)
|
||||
preview_shuttle = null
|
||||
|
||||
|
||||
/datum/controller/subsystem/shuttle/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.admin_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "ShuttleManipulator", name, 800, 600, master_ui, state)
|
||||
ui.open()
|
||||
/datum/controller/subsystem/shuttle/ui_state(mob/user)
|
||||
return GLOB.admin_state
|
||||
|
||||
/datum/controller/subsystem/shuttle/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, "ShuttleManipulator")
|
||||
ui.open()
|
||||
|
||||
/datum/controller/subsystem/shuttle/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
/**
|
||||
* tgui subsystem
|
||||
*
|
||||
* Contains all tgui state and subsystem code.
|
||||
*
|
||||
* Copyright (c) 2020 Aleksej Komarov
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
SUBSYSTEM_DEF(tgui)
|
||||
name = "tgui"
|
||||
wait = 9
|
||||
@@ -5,33 +14,338 @@ SUBSYSTEM_DEF(tgui)
|
||||
priority = FIRE_PRIORITY_TGUI
|
||||
runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT
|
||||
|
||||
var/list/currentrun = list()
|
||||
var/list/open_uis = list() // A list of open UIs, grouped by src_object and ui_key.
|
||||
var/list/processing_uis = list() // A list of processing UIs, ungrouped.
|
||||
var/basehtml // The HTML base used for all UIs.
|
||||
/// A list of UIs scheduled to process
|
||||
var/list/current_run = list()
|
||||
/// A list of open UIs
|
||||
var/list/open_uis = list()
|
||||
/// A list of open UIs, grouped by src_object.
|
||||
var/list/open_uis_by_src = list()
|
||||
/// The HTML base used for all UIs.
|
||||
var/basehtml
|
||||
|
||||
/datum/controller/subsystem/tgui/PreInit()
|
||||
basehtml = file2text('tgui/packages/tgui/public/tgui.html')
|
||||
basehtml = file2text('tgui/packages/tgui/public/tgui.html')
|
||||
|
||||
/datum/controller/subsystem/tgui/Shutdown()
|
||||
close_all_uis()
|
||||
|
||||
/datum/controller/subsystem/tgui/stat_entry()
|
||||
..("P:[processing_uis.len]")
|
||||
..("P:[open_uis.len]")
|
||||
|
||||
/datum/controller/subsystem/tgui/fire(resumed = 0)
|
||||
if (!resumed)
|
||||
src.currentrun = processing_uis.Copy()
|
||||
//cache for sanic speed (lists are references anyways)
|
||||
var/list/currentrun = src.currentrun
|
||||
|
||||
while(currentrun.len)
|
||||
var/datum/tgui/ui = currentrun[currentrun.len]
|
||||
currentrun.len--
|
||||
if(!resumed)
|
||||
src.current_run = open_uis.Copy()
|
||||
// Cache for sanic speed (lists are references anyways)
|
||||
var/list/current_run = src.current_run
|
||||
while(current_run.len)
|
||||
var/datum/tgui/ui = current_run[current_run.len]
|
||||
current_run.len--
|
||||
// TODO: Move user/src_object check to process()
|
||||
if(ui && ui.user && ui.src_object)
|
||||
ui.process()
|
||||
else
|
||||
processing_uis.Remove(ui)
|
||||
if (MC_TICK_CHECK)
|
||||
open_uis.Remove(ui)
|
||||
if(MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Requests a usable tgui window from the pool.
|
||||
* Returns null if pool was exhausted.
|
||||
*
|
||||
* required user mob
|
||||
* return datum/tgui
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/request_pooled_window(mob/user)
|
||||
if(!user.client)
|
||||
return null
|
||||
var/list/windows = user.client.tgui_windows
|
||||
var/window_id
|
||||
var/datum/tgui_window/window
|
||||
var/window_found = FALSE
|
||||
// Find a usable window
|
||||
for(var/i in 1 to TGUI_WINDOW_HARD_LIMIT)
|
||||
window_id = TGUI_WINDOW_ID(i)
|
||||
window = windows[window_id]
|
||||
// As we are looping, create missing window datums
|
||||
if(!window)
|
||||
window = new(user.client, window_id, pooled = TRUE)
|
||||
// Skip windows with acquired locks
|
||||
if(window.locked)
|
||||
continue
|
||||
if(window.status == TGUI_WINDOW_READY)
|
||||
return window
|
||||
if(window.status == TGUI_WINDOW_CLOSED)
|
||||
window.status = TGUI_WINDOW_LOADING
|
||||
window_found = TRUE
|
||||
break
|
||||
if(!window_found)
|
||||
log_tgui(user, "Error: Pool exhausted")
|
||||
return null
|
||||
return window
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Force closes all tgui windows.
|
||||
*
|
||||
* required user mob
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/force_close_all_windows(mob/user)
|
||||
log_tgui(user, "force_close_all_windows")
|
||||
if(user.client)
|
||||
user.client.tgui_windows = list()
|
||||
for(var/i in 1 to TGUI_WINDOW_HARD_LIMIT)
|
||||
var/window_id = TGUI_WINDOW_ID(i)
|
||||
user << browse(null, "window=[window_id]")
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Force closes the tgui window by window_id.
|
||||
*
|
||||
* required user mob
|
||||
* required window_id string
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/force_close_window(mob/user, window_id)
|
||||
log_tgui(user, "force_close_window")
|
||||
// Close all tgui datums based on window_id.
|
||||
for(var/datum/tgui/ui in user.tgui_open_uis)
|
||||
if(ui.window && ui.window.id == window_id)
|
||||
ui.close(can_be_suspended = FALSE)
|
||||
// Unset machine just to be sure.
|
||||
user.unset_machine()
|
||||
// Close window directly just to be sure.
|
||||
user << browse(null, "window=[window_id]")
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Try to find an instance of a UI, and push an update to it.
|
||||
*
|
||||
* required user mob The mob who opened/is using the UI.
|
||||
* required src_object datum The object/datum which owns the UI.
|
||||
* optional ui datum/tgui The UI to be updated, if it exists.
|
||||
* optional force_open bool If the UI should be re-opened instead of updated.
|
||||
*
|
||||
* return datum/tgui The found UI.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/try_update_ui(
|
||||
mob/user,
|
||||
datum/src_object,
|
||||
datum/tgui/ui)
|
||||
// Look up a UI if it wasn't passed
|
||||
if(isnull(ui))
|
||||
ui = get_open_ui(user, src_object)
|
||||
// Couldn't find a UI.
|
||||
if(isnull(ui))
|
||||
return null
|
||||
ui.process_status()
|
||||
// UI ended up with the closed status
|
||||
// or is actively trying to close itself.
|
||||
// FIXME: Doesn't actually fix the paper bug.
|
||||
if(ui.status <= UI_CLOSE)
|
||||
ui.close()
|
||||
return null
|
||||
ui.send_update()
|
||||
return ui
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Get a open UI given a user and src_object.
|
||||
*
|
||||
* required user mob The mob who opened/is using the UI.
|
||||
* required src_object datum The object/datum which owns the UI.
|
||||
*
|
||||
* return datum/tgui The found UI.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/get_open_ui(mob/user, datum/src_object)
|
||||
var/key = "[REF(src_object)]"
|
||||
// No UIs opened for this src_object
|
||||
if(isnull(open_uis_by_src[key]) || !istype(open_uis_by_src[key], /list))
|
||||
return null
|
||||
for(var/datum/tgui/ui in open_uis_by_src[key])
|
||||
// Make sure we have the right user
|
||||
if(ui.user == user)
|
||||
return ui
|
||||
return null
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Update all UIs attached to src_object.
|
||||
*
|
||||
* required src_object datum The object/datum which owns the UIs.
|
||||
*
|
||||
* return int The number of UIs updated.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/update_uis(datum/src_object)
|
||||
var/count = 0
|
||||
var/key = "[REF(src_object)]"
|
||||
// No UIs opened for this src_object
|
||||
if(isnull(open_uis_by_src[key]) || !istype(open_uis_by_src[key], /list))
|
||||
return count
|
||||
for(var/datum/tgui/ui in open_uis_by_src[key])
|
||||
// Check if UI is valid.
|
||||
if(ui && ui.src_object && ui.user && ui.src_object.ui_host(ui.user))
|
||||
ui.process(force = 1)
|
||||
count++
|
||||
return count
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Close all UIs attached to src_object.
|
||||
*
|
||||
* required src_object datum The object/datum which owns the UIs.
|
||||
*
|
||||
* return int The number of UIs closed.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/close_uis(datum/src_object)
|
||||
var/count = 0
|
||||
var/key = "[REF(src_object)]"
|
||||
// No UIs opened for this src_object
|
||||
if(isnull(open_uis_by_src[key]) || !istype(open_uis_by_src[key], /list))
|
||||
return count
|
||||
for(var/datum/tgui/ui in open_uis_by_src[key])
|
||||
// Check if UI is valid.
|
||||
if(ui && ui.src_object && ui.user && ui.src_object.ui_host(ui.user))
|
||||
ui.close()
|
||||
count++
|
||||
return count
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Close all UIs regardless of their attachment to src_object.
|
||||
*
|
||||
* return int The number of UIs closed.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/close_all_uis()
|
||||
var/count = 0
|
||||
for(var/key in open_uis_by_src)
|
||||
for(var/datum/tgui/ui in open_uis_by_src[key])
|
||||
// Check if UI is valid.
|
||||
if(ui && ui.src_object && ui.user && ui.src_object.ui_host(ui.user))
|
||||
ui.close()
|
||||
count++
|
||||
return count
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Update all UIs belonging to a user.
|
||||
*
|
||||
* required user mob The mob who opened/is using the UI.
|
||||
* optional src_object datum If provided, only update UIs belonging this src_object.
|
||||
*
|
||||
* return int The number of UIs updated.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/update_user_uis(mob/user, datum/src_object)
|
||||
var/count = 0
|
||||
if(length(user?.tgui_open_uis) == 0)
|
||||
return count
|
||||
for(var/datum/tgui/ui in user.tgui_open_uis)
|
||||
if(isnull(src_object) || ui.src_object == src_object)
|
||||
ui.process(force = 1)
|
||||
count++
|
||||
return count
|
||||
|
||||
/**
|
||||
* public
|
||||
*
|
||||
* Close all UIs belonging to a user.
|
||||
*
|
||||
* required user mob The mob who opened/is using the UI.
|
||||
* optional src_object datum If provided, only close UIs belonging this src_object.
|
||||
*
|
||||
* return int The number of UIs closed.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/close_user_uis(mob/user, datum/src_object)
|
||||
var/count = 0
|
||||
if(length(user?.tgui_open_uis) == 0)
|
||||
return count
|
||||
for(var/datum/tgui/ui in user.tgui_open_uis)
|
||||
if(isnull(src_object) || ui.src_object == src_object)
|
||||
ui.close()
|
||||
count++
|
||||
return count
|
||||
|
||||
/**
|
||||
* private
|
||||
*
|
||||
* Add a UI to the list of open UIs.
|
||||
*
|
||||
* required ui datum/tgui The UI to be added.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/on_open(datum/tgui/ui)
|
||||
var/key = "[REF(ui.src_object)]"
|
||||
if(isnull(open_uis_by_src[key]) || !istype(open_uis_by_src[key], /list))
|
||||
open_uis_by_src[key] = list()
|
||||
ui.user.tgui_open_uis |= ui
|
||||
var/list/uis = open_uis_by_src[key]
|
||||
uis |= ui
|
||||
open_uis |= ui
|
||||
|
||||
/**
|
||||
* private
|
||||
*
|
||||
* Remove a UI from the list of open UIs.
|
||||
*
|
||||
* required ui datum/tgui The UI to be removed.
|
||||
*
|
||||
* return bool If the UI was removed or not.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/on_close(datum/tgui/ui)
|
||||
var/key = "[REF(ui.src_object)]"
|
||||
if(isnull(open_uis_by_src[key]) || !istype(open_uis_by_src[key], /list))
|
||||
return FALSE
|
||||
// Remove it from the list of processing UIs.
|
||||
open_uis.Remove(ui)
|
||||
// If the user exists, remove it from them too.
|
||||
if(ui.user)
|
||||
ui.user.tgui_open_uis.Remove(ui)
|
||||
var/list/uis = open_uis_by_src[key]
|
||||
uis.Remove(ui)
|
||||
if(length(uis) == 0)
|
||||
open_uis_by_src.Remove(key)
|
||||
return TRUE
|
||||
|
||||
/**
|
||||
* private
|
||||
*
|
||||
* Handle client logout, by closing all their UIs.
|
||||
*
|
||||
* required user mob The mob which logged out.
|
||||
*
|
||||
* return int The number of UIs closed.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/on_logout(mob/user)
|
||||
close_user_uis(user)
|
||||
|
||||
/**
|
||||
* private
|
||||
*
|
||||
* Handle clients switching mobs, by transferring their UIs.
|
||||
*
|
||||
* required user source The client's original mob.
|
||||
* required user target The client's new mob.
|
||||
*
|
||||
* return bool If the UIs were transferred.
|
||||
*/
|
||||
/datum/controller/subsystem/tgui/proc/on_transfer(mob/source, mob/target)
|
||||
// The old mob had no open UIs.
|
||||
if(length(source?.tgui_open_uis) == 0)
|
||||
return FALSE
|
||||
if(isnull(target.tgui_open_uis) || !istype(target.tgui_open_uis, /list))
|
||||
target.tgui_open_uis = list()
|
||||
// Transfer all the UIs.
|
||||
for(var/datum/tgui/ui in source.tgui_open_uis)
|
||||
// Inform the UIs of their new owner.
|
||||
ui.user = target
|
||||
target.tgui_open_uis.Add(ui)
|
||||
// Clear the old list.
|
||||
source.tgui_open_uis.Cut()
|
||||
return TRUE
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
|
||||
/datum/action/proc/ApplyIcon(obj/screen/movable/action_button/current_button, force = FALSE)
|
||||
if(icon_icon && button_icon_state && ((current_button.button_icon_state != button_icon_state) || force))
|
||||
current_button.cut_overlays(TRUE)
|
||||
current_button.cut_overlays()
|
||||
current_button.add_overlay(mutable_appearance(icon_icon, button_icon_state))
|
||||
current_button.button_icon_state = button_icon_state
|
||||
|
||||
|
||||
+17
-10
@@ -431,25 +431,31 @@
|
||||
if(!owner)
|
||||
owner = M
|
||||
|
||||
/datum/ai_laws/proc/get_law_list(include_zeroth = 0, show_numbers = 1)
|
||||
/**
|
||||
* Generates a list of all laws on this datum, including rendered HTML tags if required
|
||||
*
|
||||
* Arguments:
|
||||
* * include_zeroth - Operator that controls if law 0 or law 666 is returned in the set
|
||||
* * show_numbers - Operator that controls if law numbers are prepended to the returned laws
|
||||
* * render_html - Operator controlling if HTML tags are rendered on the returned laws
|
||||
*/
|
||||
/datum/ai_laws/proc/get_law_list(include_zeroth = FALSE, show_numbers = TRUE, render_html = TRUE)
|
||||
var/list/data = list()
|
||||
|
||||
if (include_zeroth && devillaws && devillaws.len)
|
||||
for(var/i in devillaws)
|
||||
data += "[show_numbers ? "666:" : ""] <font color='#cc5500'>[i]</font>"
|
||||
if (include_zeroth && devillaws)
|
||||
for(var/law in devillaws)
|
||||
data += "[show_numbers ? "666:" : ""] [render_html ? "<font color='#cc5500'>[law]</font>" : law]"
|
||||
|
||||
if (include_zeroth && zeroth)
|
||||
data += "[show_numbers ? "0:" : ""] <font color='#ff0000'><b>[zeroth]</b></font>"
|
||||
data += "[show_numbers ? "0:" : ""] [render_html ? "<font color='#ff0000'><b>[zeroth]</b></font>" : zeroth]"
|
||||
|
||||
for(var/law in hacked)
|
||||
if (length(law) > 0)
|
||||
var/num = ionnum()
|
||||
data += "[show_numbers ? "[num]:" : ""] <font color='#660000'>[law]</font>"
|
||||
data += "[show_numbers ? "[ionnum()]:" : ""] [render_html ? "<font color='#660000'>[law]</font>" : law]"
|
||||
|
||||
for(var/law in ion)
|
||||
if (length(law) > 0)
|
||||
var/num = ionnum()
|
||||
data += "[show_numbers ? "[num]:" : ""] <font color='#547DFE'>[law]</font>"
|
||||
data += "[show_numbers ? "[ionnum()]:" : ""] [render_html ? "<font color='#547DFE'>[law]</font>" : law]"
|
||||
|
||||
var/number = 1
|
||||
for(var/law in inherent)
|
||||
@@ -459,6 +465,7 @@
|
||||
|
||||
for(var/law in supplied)
|
||||
if (length(law) > 0)
|
||||
data += "[show_numbers ? "[number]:" : ""] <font color='#990099'>[law]</font>"
|
||||
data += "[show_numbers ? "[number]:" : ""] [render_html ? "<font color='#990099'>[law]</font>" : law]"
|
||||
number++
|
||||
return data
|
||||
|
||||
|
||||
@@ -203,9 +203,9 @@
|
||||
Set var amt to the value current cycle req is pointing to, its amount of type we need to delete
|
||||
Get var/surroundings list of things accessable to crafting by get_environment()
|
||||
Check the type of the current cycle req
|
||||
If its reagent then do a while loop, inside it try to locate() reagent containers, inside such containers try to locate needed reagent, if there isnt remove thing from surroundings
|
||||
If its reagent then do a while loop, inside it try to locate() reagent containers, inside such containers try to locate needed reagent, if there isn't remove thing from surroundings
|
||||
If there is enough reagent in the search result then delete the needed amount, create the same type of reagent with the same data var and put it into deletion list
|
||||
If there isnt enough take all of that reagent from the container, put into deletion list, substract the amt var by the volume of reagent, remove the container from surroundings list and keep searching
|
||||
If there isn't enough take all of that reagent from the container, put into deletion list, substract the amt var by the volume of reagent, remove the container from surroundings list and keep searching
|
||||
While doing above stuff check deletion list if it already has such reagnet, if yes merge instead of adding second one
|
||||
If its stack check if it has enough amount
|
||||
If yes create new stack with the needed amount and put in into deletion list, substract taken amount from the stack
|
||||
@@ -216,7 +216,7 @@
|
||||
Then do a loop over parts var of the recipe
|
||||
Do similar stuff to what we have done above, but now in deletion list, until the parts conditions are satisfied keep taking from the deletion list and putting it into parts list for return
|
||||
|
||||
After its done loop over deletion list and delete all the shit that wasnt taken by parts loop
|
||||
After its done loop over deletion list and delete all the shit that wasn't taken by parts loop
|
||||
|
||||
del_reqs return the list of parts resulting object will receive as argument of CheckParts proc, on the atom level it will add them all to the contents, on all other levels it calls ..() and does whatever is needed afterwards but from contents list already
|
||||
*/
|
||||
@@ -323,9 +323,12 @@
|
||||
if(user == parent)
|
||||
ui_interact(user)
|
||||
|
||||
/datum/component/personal_crafting/ui_state(mob/user)
|
||||
return GLOB.not_incapacitated_turf_state
|
||||
|
||||
//For the UI related things we're going to assume the user is a mob rather than typesetting it to an atom as the UI isn't generated if the parent is an atom
|
||||
/datum/component/personal_crafting/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.not_incapacitated_turf_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
/datum/component/personal_crafting/ui_interact(mob/user, datum/tgui/ui)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
cur_category = categories[1]
|
||||
if(islist(categories[cur_category]))
|
||||
@@ -333,7 +336,7 @@
|
||||
cur_subcategory = subcats[1]
|
||||
else
|
||||
cur_subcategory = CAT_NONE
|
||||
ui = new(user, src, ui_key, "PersonalCrafting", "Crafting Menu", 700, 800, master_ui, state)
|
||||
ui = new(user, src, "PersonalCrafting")
|
||||
ui.open()
|
||||
|
||||
/datum/component/personal_crafting/ui_data(mob/user)
|
||||
@@ -413,13 +416,8 @@
|
||||
display_compact = !display_compact
|
||||
. = TRUE
|
||||
if("set_category")
|
||||
if(!isnull(params["category"]))
|
||||
cur_category = params["category"]
|
||||
if(!isnull(params["subcategory"]))
|
||||
if(params["subcategory"] == "0")
|
||||
cur_subcategory = ""
|
||||
else
|
||||
cur_subcategory = params["subcategory"]
|
||||
cur_category = params["category"]
|
||||
cur_subcategory = params["subcategory"] || ""
|
||||
. = TRUE
|
||||
|
||||
/datum/component/personal_crafting/proc/build_recipe_data(datum/crafting_recipe/R)
|
||||
|
||||
@@ -40,13 +40,23 @@
|
||||
reqs = list(/obj/item/paper = 20)
|
||||
category = CAT_CLOTHING
|
||||
|
||||
/datum/crafting_recipe/balaclavabreath
|
||||
name = "Breathaclava"
|
||||
result = /obj/item/clothing/mask/balaclava/breath
|
||||
time = 10
|
||||
reqs = list(/obj/item/clothing/mask/balaclava = 1,
|
||||
/obj/item/clothing/mask/breath = 1)
|
||||
category = CAT_CLOTHING
|
||||
|
||||
|
||||
|
||||
/datum/crafting_recipe/armwraps
|
||||
name = "Armwraps"
|
||||
result = /obj/item/clothing/gloves/fingerless/pugilist
|
||||
time = 60
|
||||
tools = list(TOOL_WIRECUTTER)
|
||||
reqs = list(/obj/item/stack/sheet/cloth = 4,
|
||||
/obj/item/stack/sheet/durathread = 2,
|
||||
/obj/item/stack/sticky_tape = 2,
|
||||
/obj/item/stack/sheet/leather = 2)
|
||||
category = CAT_CLOTHING
|
||||
|
||||
|
||||
@@ -2,6 +2,15 @@
|
||||
//Large Objects//
|
||||
/////////////////
|
||||
|
||||
/datum/crafting_recipe/plunger
|
||||
name = "Plunger"
|
||||
result = /obj/item/plunger
|
||||
time = 1
|
||||
reqs = list(/obj/item/stack/sheet/plastic = 1,
|
||||
/obj/item/stack/sheet/mineral/wood = 1)
|
||||
category = CAT_MISC
|
||||
subcategory = CAT_TOOL
|
||||
|
||||
/datum/crafting_recipe/showercurtain
|
||||
name = "Shower Curtains"
|
||||
reqs = list(/obj/item/stack/sheet/cloth = 2,
|
||||
@@ -126,7 +135,7 @@
|
||||
|
||||
/datum/crafting_recipe/brute_pack
|
||||
name = "Suture Pack"
|
||||
result = /obj/item/stack/medical/suture/one
|
||||
result = /obj/item/stack/medical/suture/five
|
||||
time = 1
|
||||
reqs = list(/obj/item/stack/medical/gauze = 1,
|
||||
/datum/reagent/medicine/styptic_powder = 10)
|
||||
@@ -135,7 +144,7 @@
|
||||
|
||||
/datum/crafting_recipe/burn_pack
|
||||
name = "Regenerative Mesh"
|
||||
result = /obj/item/stack/medical/mesh/one
|
||||
result = /obj/item/stack/medical/mesh/five
|
||||
time = 1
|
||||
reqs = list(/obj/item/stack/medical/gauze = 1,
|
||||
/datum/reagent/medicine/silver_sulfadiazine = 10)
|
||||
@@ -188,7 +197,7 @@
|
||||
result = /obj/item/screwdriver/bronze
|
||||
reqs = list(/obj/item/screwdriver = 1,
|
||||
/obj/item/stack/cable_coil = 10,
|
||||
/obj/item/stack/tile/bronze = 1,
|
||||
/obj/item/stack/sheet/bronze = 1,
|
||||
/datum/reagent/water = 15)
|
||||
time = 40
|
||||
subcategory = CAT_TOOL
|
||||
@@ -200,7 +209,7 @@
|
||||
result = /obj/item/weldingtool/bronze
|
||||
reqs = list(/obj/item/weldingtool = 1,
|
||||
/obj/item/stack/cable_coil = 10,
|
||||
/obj/item/stack/tile/bronze = 1,
|
||||
/obj/item/stack/sheet/bronze = 1,
|
||||
/datum/reagent/water = 15)
|
||||
time = 40
|
||||
subcategory = CAT_TOOL
|
||||
@@ -212,7 +221,7 @@
|
||||
result = /obj/item/wirecutters/bronze
|
||||
reqs = list(/obj/item/wirecutters = 1,
|
||||
/obj/item/stack/cable_coil = 10,
|
||||
/obj/item/stack/tile/bronze = 1,
|
||||
/obj/item/stack/sheet/bronze = 1,
|
||||
/datum/reagent/water = 15)
|
||||
time = 40
|
||||
subcategory = CAT_TOOL
|
||||
@@ -224,7 +233,7 @@
|
||||
result = /obj/item/crowbar/bronze
|
||||
reqs = list(/obj/item/crowbar = 1,
|
||||
/obj/item/stack/cable_coil = 10,
|
||||
/obj/item/stack/tile/bronze = 1,
|
||||
/obj/item/stack/sheet/bronze = 1,
|
||||
/datum/reagent/water = 15)
|
||||
time = 40
|
||||
subcategory = CAT_TOOL
|
||||
@@ -236,7 +245,7 @@
|
||||
result = /obj/item/wrench/bronze
|
||||
reqs = list(/obj/item/wrench = 1,
|
||||
/obj/item/stack/cable_coil = 10,
|
||||
/obj/item/stack/tile/bronze = 1,
|
||||
/obj/item/stack/sheet/bronze = 1,
|
||||
/datum/reagent/water = 15)
|
||||
time = 40
|
||||
subcategory = CAT_TOOL
|
||||
@@ -269,6 +278,19 @@
|
||||
subcategory = CAT_TOOL
|
||||
category = CAT_MISC
|
||||
|
||||
/datum/crafting_recipe/heretic/codex
|
||||
name = "Codex Cicatrix"
|
||||
result = /obj/item/forbidden_book
|
||||
tools = list(/obj/item/pen)
|
||||
reqs = list(/obj/item/paper = 5,
|
||||
/obj/item/organ/eyes = 1,
|
||||
/obj/item/organ/heart = 1,
|
||||
/obj/item/stack/sheet/animalhide/human = 1)
|
||||
time = 150
|
||||
subcategory = CAT_MISCELLANEOUS
|
||||
category = CAT_MISC
|
||||
always_availible = FALSE
|
||||
|
||||
////////////
|
||||
//Vehicles//
|
||||
////////////
|
||||
@@ -324,7 +346,7 @@
|
||||
result = /obj/item/toy/sword/cx
|
||||
subcategory = CAT_MISCELLANEOUS
|
||||
category = CAT_MISC
|
||||
|
||||
|
||||
/datum/crafting_recipe/catgirlplushie
|
||||
name = "Catgirl Plushie"
|
||||
reqs = list(/obj/item/toy/plush/hairball = 3)
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
UnregisterSignal(weapon, list(COMSIG_MOVABLE_MOVED, COMSIG_PARENT_QDELETING))
|
||||
if(overlay)
|
||||
var/atom/A = parent
|
||||
A.cut_overlay(overlay, TRUE)
|
||||
UnregisterSignal(A,COMSIG_ATOM_UPDATE_OVERLAYS)
|
||||
qdel(overlay)
|
||||
|
||||
return ..()
|
||||
@@ -326,7 +326,8 @@
|
||||
var/matrix/M = matrix()
|
||||
M.Translate(pixelX, pixelY)
|
||||
overlay.transform = M
|
||||
hit.add_overlay(overlay, TRUE)
|
||||
RegisterSignal(hit,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/apply_overlay)
|
||||
hit.update_icon()
|
||||
|
||||
if(harmful)
|
||||
hit.visible_message("<span class='danger'>[weapon] embeds itself in [hit]!</span>")
|
||||
@@ -339,6 +340,8 @@
|
||||
else
|
||||
hit.visible_message("<span class='danger'>[weapon] sticks itself to [hit]!</span>")
|
||||
|
||||
/datum/component/embedded/proc/apply_overlay(atom/source, list/overlay_list)
|
||||
overlay_list += overlay
|
||||
|
||||
/datum/component/embedded/proc/examineTurf(datum/source, mob/user, list/examine_list)
|
||||
if(harmful)
|
||||
|
||||
@@ -80,19 +80,15 @@ GLOBAL_LIST_EMPTY(GPS_list)
|
||||
to_chat(user, "<span class='notice'>[parent] is now tracking, and visible to other GPS devices.</span>")
|
||||
tracking = TRUE
|
||||
|
||||
/datum/component/gps/item/ui_interact(mob/user, ui_key = "gps", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) // Remember to use the appropriate state.
|
||||
/datum/component/gps/item/ui_interact(mob/user, datum/tgui/ui)
|
||||
if(emped)
|
||||
to_chat(user, "<span class='hear'>[parent] fizzles weakly.</span>")
|
||||
return
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
// Variable window height, depending on how many GPS units there are
|
||||
// to show, clamped to relatively safe range.
|
||||
var/gps_window_height = clamp(325 + GLOB.GPS_list.len * 14, 325, 700)
|
||||
ui = new(user, src, ui_key, "Gps", "Global Positioning System", 470, gps_window_height, master_ui, state) //width, height
|
||||
ui = new(user, src, "Gps")
|
||||
ui.open()
|
||||
|
||||
ui.set_autoupdate(state = updating)
|
||||
ui.set_autoupdate(updating)
|
||||
|
||||
/datum/component/gps/item/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
@@ -307,6 +307,10 @@
|
||||
|
||||
|
||||
/datum/component/mood/proc/HandleNutrition(mob/living/L)
|
||||
if(isethereal(L))
|
||||
HandleCharge(L)
|
||||
if(HAS_TRAIT(L, TRAIT_NOHUNGER))
|
||||
return FALSE //no mood events for nutrition
|
||||
switch(L.nutrition)
|
||||
if(NUTRITION_LEVEL_FULL to INFINITY)
|
||||
add_event(null, "nutrition", /datum/mood_event/fat)
|
||||
@@ -321,6 +325,22 @@
|
||||
if(0 to NUTRITION_LEVEL_STARVING)
|
||||
add_event(null, "nutrition", /datum/mood_event/starving)
|
||||
|
||||
/datum/component/mood/proc/HandleCharge(mob/living/carbon/human/H)
|
||||
var/datum/species/ethereal/E = H.dna.species
|
||||
switch(E.get_charge(H))
|
||||
if(ETHEREAL_CHARGE_NONE to ETHEREAL_CHARGE_LOWPOWER)
|
||||
add_event(null, "charge", /datum/mood_event/decharged)
|
||||
if(ETHEREAL_CHARGE_LOWPOWER to ETHEREAL_CHARGE_NORMAL)
|
||||
add_event(null, "charge", /datum/mood_event/lowpower)
|
||||
if(ETHEREAL_CHARGE_NORMAL to ETHEREAL_CHARGE_ALMOSTFULL)
|
||||
clear_event(null, "charge")
|
||||
if(ETHEREAL_CHARGE_ALMOSTFULL to ETHEREAL_CHARGE_FULL)
|
||||
add_event(null, "charge", /datum/mood_event/charged)
|
||||
if(ETHEREAL_CHARGE_FULL to ETHEREAL_CHARGE_OVERLOAD)
|
||||
add_event(null, "charge", /datum/mood_event/overcharged)
|
||||
if(ETHEREAL_CHARGE_OVERLOAD to ETHEREAL_CHARGE_DANGEROUS)
|
||||
add_event(null, "charge", /datum/mood_event/supercharged)
|
||||
|
||||
/datum/component/mood/proc/update_beauty(area/A)
|
||||
if(A.outdoors) //if we're outside, we don't care.
|
||||
clear_event(null, "area_beauty")
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
/datum/component/plumbing
|
||||
///Index with "1" = /datum/ductnet/theductpointingnorth etc. "1" being the num2text from NORTH define
|
||||
var/list/datum/ductnet/ducts = list()
|
||||
///shortcut to our parents' reagent holder
|
||||
var/datum/reagents/reagents
|
||||
///TRUE if we wanna add proper pipe outless under our parent object. this is pretty good if i may so so myself
|
||||
var/use_overlays = TRUE
|
||||
///We can't just cut all of the parents' overlays, so we'll track them here
|
||||
var/list/image/ducterlays
|
||||
///directions in wich we act as a supplier
|
||||
var/supply_connects
|
||||
///direction in wich we act as a demander
|
||||
var/demand_connects
|
||||
///FALSE to pretty much just not exist in the plumbing world so we can be moved, TRUE to go plumbo mode
|
||||
var/active = FALSE
|
||||
///if TRUE connects will spin with the parent object visually and codually, so you can have it work in any direction. FALSE if you want it to be static
|
||||
var/turn_connects = TRUE
|
||||
|
||||
/datum/component/plumbing/Initialize(start=TRUE, _turn_connects=TRUE) //turn_connects for wheter or not we spin with the object to change our pipes
|
||||
if(parent && !istype(parent, /atom/movable))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
var/atom/movable/AM = parent
|
||||
if(!AM.reagents)
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
reagents = AM.reagents
|
||||
turn_connects = _turn_connects
|
||||
|
||||
RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED,COMSIG_PARENT_PREQDELETED), .proc/disable)
|
||||
RegisterSignal(parent, list(COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH), .proc/toggle_active)
|
||||
|
||||
if(start)
|
||||
enable()
|
||||
|
||||
if(use_overlays)
|
||||
create_overlays()
|
||||
|
||||
/datum/component/plumbing/process()
|
||||
if(!demand_connects || !reagents)
|
||||
STOP_PROCESSING(SSfluids, src)
|
||||
return
|
||||
if(reagents.total_volume < reagents.maximum_volume)
|
||||
for(var/D in GLOB.cardinals)
|
||||
if(D & demand_connects)
|
||||
send_request(D)
|
||||
///Can we be added to the ductnet?
|
||||
/datum/component/plumbing/proc/can_add(datum/ductnet/D, dir)
|
||||
if(!active)
|
||||
return
|
||||
if(!dir || !D)
|
||||
return FALSE
|
||||
if(num2text(dir) in ducts)
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
///called from in process(). only calls process_request(), but can be overwritten for children with special behaviour
|
||||
/datum/component/plumbing/proc/send_request(dir)
|
||||
process_request(amount = MACHINE_REAGENT_TRANSFER, reagent = null, dir = dir)
|
||||
///check who can give us what we want, and how many each of them will give us
|
||||
/datum/component/plumbing/proc/process_request(amount, reagent, dir)
|
||||
var/list/valid_suppliers = list()
|
||||
var/datum/ductnet/net
|
||||
if(!ducts.Find(num2text(dir)))
|
||||
return
|
||||
net = ducts[num2text(dir)]
|
||||
for(var/A in net.suppliers)
|
||||
var/datum/component/plumbing/supplier = A
|
||||
if(supplier.can_give(amount, reagent, net))
|
||||
valid_suppliers += supplier
|
||||
for(var/A in valid_suppliers)
|
||||
var/datum/component/plumbing/give = A
|
||||
give.transfer_to(src, amount / valid_suppliers.len, reagent, net)
|
||||
///returns TRUE when they can give the specified amount and reagent. called by process request
|
||||
/datum/component/plumbing/proc/can_give(amount, reagent, datum/ductnet/net)
|
||||
if(amount <= 0)
|
||||
return
|
||||
|
||||
if(reagent) //only asked for one type of reagent
|
||||
for(var/A in reagents.reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(R.type == reagent)
|
||||
return TRUE
|
||||
else if(reagents.total_volume > 0) //take whatever
|
||||
return TRUE
|
||||
///this is where the reagent is actually transferred and is thus the finish point of our process()
|
||||
/datum/component/plumbing/proc/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net)
|
||||
if(!reagents || !target || !target.reagents)
|
||||
return FALSE
|
||||
if(reagent)
|
||||
reagents.trans_id_to(target.parent, reagent, amount)
|
||||
else
|
||||
reagents.trans_to(target.parent, amount)
|
||||
///We create our luxurious piping overlays/underlays, to indicate where we do what. only called once if use_overlays = TRUE in Initialize()
|
||||
/datum/component/plumbing/proc/create_overlays()
|
||||
var/atom/movable/AM = parent
|
||||
for(var/image/I in ducterlays)
|
||||
AM.overlays.Remove(I)
|
||||
qdel(I)
|
||||
ducterlays = list()
|
||||
for(var/D in GLOB.cardinals)
|
||||
var/color
|
||||
var/direction
|
||||
if(D & demand_connects)
|
||||
color = "red" //red because red is mean and it takes
|
||||
else if(D & supply_connects)
|
||||
color = "blue" //blue is nice and gives
|
||||
else
|
||||
continue
|
||||
var/image/I
|
||||
if(turn_connects)
|
||||
switch(D)
|
||||
if(NORTH)
|
||||
direction = "north"
|
||||
if(SOUTH)
|
||||
direction = "south"
|
||||
if(EAST)
|
||||
direction = "east"
|
||||
if(WEST)
|
||||
direction = "west"
|
||||
I = image('icons/obj/plumbing/plumbers.dmi', "[direction]-[color]", layer = AM.layer - 1)
|
||||
else
|
||||
I = image('icons/obj/plumbing/plumbers.dmi', color, layer = AM.layer - 1) //color is not color as in the var, it's just the name
|
||||
I.dir = D
|
||||
AM.add_overlay(I)
|
||||
ducterlays += I
|
||||
///we stop acting like a plumbing thing and disconnect if we are, so we can safely be moved and stuff
|
||||
/datum/component/plumbing/proc/disable()
|
||||
if(!active)
|
||||
return
|
||||
STOP_PROCESSING(SSfluids, src)
|
||||
for(var/A in ducts)
|
||||
var/datum/ductnet/D = ducts[A]
|
||||
D.remove_plumber(src)
|
||||
active = FALSE
|
||||
for(var/D in GLOB.cardinals)
|
||||
if(D & (demand_connects | supply_connects))
|
||||
for(var/obj/machinery/duct/duct in get_step(parent, D))
|
||||
duct.attempt_connect()
|
||||
|
||||
///settle wherever we are, and start behaving like a piece of plumbing
|
||||
/datum/component/plumbing/proc/enable()
|
||||
if(active)
|
||||
return
|
||||
update_dir()
|
||||
active = TRUE
|
||||
var/atom/movable/AM = parent
|
||||
for(var/obj/machinery/duct/D in AM.loc) //Destroy any ducts under us. Ducts also self destruct if placed under a plumbing machine. machines disable when they get moved
|
||||
if(D.anchored) //that should cover everything
|
||||
D.disconnect_duct()
|
||||
|
||||
if(demand_connects)
|
||||
START_PROCESSING(SSfluids, src)
|
||||
|
||||
for(var/D in GLOB.cardinals)
|
||||
if(D & (demand_connects | supply_connects))
|
||||
for(var/atom/movable/A in get_step(parent, D))
|
||||
if(istype(A, /obj/machinery/duct))
|
||||
var/obj/machinery/duct/duct = A
|
||||
duct.attempt_connect()
|
||||
else
|
||||
var/datum/component/plumbing/P = A.GetComponent(/datum/component/plumbing)
|
||||
if(P)
|
||||
direct_connect(P, D)
|
||||
|
||||
/// Toggle our machinery on or off. This is called by a hook from default_unfasten_wrench with anchored as only param, so we dont have to copypaste this on every object that can move
|
||||
/datum/component/plumbing/proc/toggle_active(obj/O, new_state)
|
||||
if(new_state)
|
||||
enable()
|
||||
else
|
||||
disable()
|
||||
/** We update our connects only when we settle down by taking our current and original direction to find our new connects
|
||||
* If someone wants it to fucking spin while connected to something go actually knock yourself out
|
||||
*/
|
||||
/datum/component/plumbing/proc/update_dir()
|
||||
if(!turn_connects)
|
||||
return
|
||||
var/atom/movable/AM = parent
|
||||
var/new_demand_connects
|
||||
var/new_supply_connects
|
||||
var/new_dir = AM.dir
|
||||
var/angle = 180 - dir2angle(new_dir)
|
||||
if(new_dir == SOUTH)
|
||||
demand_connects = initial(demand_connects)
|
||||
supply_connects = initial(supply_connects)
|
||||
else
|
||||
for(var/D in GLOB.cardinals)
|
||||
if(D & initial(demand_connects))
|
||||
new_demand_connects += turn(D, angle)
|
||||
if(D & initial(supply_connects))
|
||||
new_supply_connects += turn(D, angle)
|
||||
demand_connects = new_demand_connects
|
||||
supply_connects = new_supply_connects
|
||||
///Give the direction of a pipe, and it'll return wich direction it originally was when it's object pointed SOUTH
|
||||
/datum/component/plumbing/proc/get_original_direction(dir)
|
||||
var/atom/movable/AM = parent
|
||||
return turn(dir, dir2angle(AM.dir) - 180)
|
||||
//special case in-case we want to connect directly with another machine without a duct
|
||||
/datum/component/plumbing/proc/direct_connect(datum/component/plumbing/P, dir)
|
||||
if(!P.active)
|
||||
return
|
||||
var/opposite_dir = turn(dir, 180)
|
||||
if(P.demand_connects & opposite_dir && supply_connects & dir || P.supply_connects & opposite_dir && demand_connects & dir) //make sure we arent connecting two supplies or demands
|
||||
var/datum/ductnet/net = new()
|
||||
net.add_plumber(src, dir)
|
||||
net.add_plumber(P, opposite_dir)
|
||||
|
||||
///has one pipe input that only takes, example is manual output pipe
|
||||
/datum/component/plumbing/simple_demand
|
||||
demand_connects = NORTH
|
||||
///has one pipe output that only supplies. example is liquid pump and manual input pipe
|
||||
/datum/component/plumbing/simple_supply
|
||||
supply_connects = NORTH
|
||||
///input and output, like a holding tank
|
||||
/datum/component/plumbing/tank
|
||||
demand_connects = WEST
|
||||
supply_connects = EAST
|
||||
@@ -0,0 +1,21 @@
|
||||
/datum/component/plumbing/acclimator
|
||||
demand_connects = WEST
|
||||
supply_connects = EAST
|
||||
var/obj/machinery/plumbing/acclimator/AC
|
||||
|
||||
/datum/component/plumbing/acclimator/Initialize(start=TRUE, _turn_connects=TRUE)
|
||||
. = ..()
|
||||
if(!istype(parent, /obj/machinery/plumbing/acclimator))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
AC = parent
|
||||
|
||||
/datum/component/plumbing/acclimator/can_give(amount, reagent)
|
||||
. = ..()
|
||||
if(. && AC.emptying)
|
||||
return TRUE
|
||||
return FALSE
|
||||
///We're overriding process and not send_request, because all process does is do the requests, so we might aswell cut out the middle man and save some code from running
|
||||
/datum/component/plumbing/acclimator/process()
|
||||
if(AC.emptying)
|
||||
return
|
||||
. = ..()
|
||||
@@ -0,0 +1,59 @@
|
||||
///The magical plumbing component used by the chemical filters. The different supply connects behave differently depending on the filters set on the chemical filter
|
||||
/datum/component/plumbing/filter
|
||||
demand_connects = NORTH
|
||||
supply_connects = SOUTH | EAST | WEST //SOUTH is straight, EAST is left and WEST is right. We look from the perspective of the insert
|
||||
|
||||
/datum/component/plumbing/filter/Initialize()
|
||||
. = ..()
|
||||
if(!istype(parent, /obj/machinery/plumbing/filter))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
/datum/component/plumbing/filter/can_give(amount, reagent, datum/ductnet/net)
|
||||
. = ..()
|
||||
if(.)
|
||||
var/direction
|
||||
for(var/A in ducts)
|
||||
if(ducts[A] == net)
|
||||
direction = get_original_direction(text2num(A)) //we need it relative to the direction, so filters don't change when we turn the filter
|
||||
break
|
||||
if(!direction)
|
||||
return FALSE
|
||||
if(reagent)
|
||||
if(!can_give_in_direction(direction, reagent))
|
||||
return FALSE
|
||||
|
||||
/datum/component/plumbing/filter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net)
|
||||
if(!reagents || !target || !target.reagents)
|
||||
return FALSE
|
||||
var/direction
|
||||
for(var/A in ducts)
|
||||
if(ducts[A] == net)
|
||||
direction = get_original_direction(text2num(A))
|
||||
break
|
||||
if(reagent)
|
||||
reagents.trans_id_to(target.parent, reagent, amount)
|
||||
else
|
||||
for(var/A in reagents.reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(!can_give_in_direction(direction, R.type))
|
||||
continue
|
||||
var/new_amount
|
||||
if(R.volume < amount)
|
||||
new_amount = amount - R.volume
|
||||
reagents.trans_id_to(target.parent, R.type, amount)
|
||||
amount = new_amount
|
||||
if(amount <= 0)
|
||||
break
|
||||
///We check if the direction and reagent are valid to give. Needed for filters since different outputs have different behaviours
|
||||
/datum/component/plumbing/filter/proc/can_give_in_direction(dir, reagent)
|
||||
var/obj/machinery/plumbing/filter/F = parent
|
||||
switch(dir)
|
||||
if(SOUTH) //straight
|
||||
if(!F.left.Find(reagent) && !F.right.Find(reagent))
|
||||
return TRUE
|
||||
if(WEST) //right
|
||||
if(F.right.Find(reagent))
|
||||
return TRUE
|
||||
if(EAST) //left
|
||||
if(F.left.Find(reagent))
|
||||
return TRUE
|
||||
@@ -0,0 +1,38 @@
|
||||
/datum/component/plumbing/reaction_chamber
|
||||
demand_connects = WEST
|
||||
supply_connects = EAST
|
||||
|
||||
/datum/component/plumbing/reaction_chamber/Initialize(start=TRUE, _turn_connects=TRUE)
|
||||
. = ..()
|
||||
if(!istype(parent, /obj/machinery/plumbing/reaction_chamber))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
/datum/component/plumbing/reaction_chamber/can_give(amount, reagent, datum/ductnet/net)
|
||||
. = ..()
|
||||
var/obj/machinery/plumbing/reaction_chamber/RC = parent
|
||||
if(!. || !RC.emptying)
|
||||
return FALSE
|
||||
|
||||
/datum/component/plumbing/reaction_chamber/send_request(dir)
|
||||
var/obj/machinery/plumbing/reaction_chamber/RC = parent
|
||||
if(RC.emptying || !LAZYLEN(RC.required_reagents))
|
||||
return
|
||||
for(var/RT in RC.required_reagents)
|
||||
var/has_reagent = FALSE
|
||||
for(var/A in reagents.reagent_list)
|
||||
var/datum/reagent/RD = A
|
||||
if(RT == RD.type)
|
||||
has_reagent = TRUE
|
||||
if(RD.volume < RC.required_reagents[RT])
|
||||
process_request(min(RC.required_reagents[RT] - RD.volume, MACHINE_REAGENT_TRANSFER) , RT, dir)
|
||||
return
|
||||
if(!has_reagent)
|
||||
process_request(min(RC.required_reagents[RT], MACHINE_REAGENT_TRANSFER), RT, dir)
|
||||
return
|
||||
|
||||
RC.reagent_flags &= ~NO_REACT
|
||||
reagents.handle_reactions()
|
||||
|
||||
RC.emptying = TRUE //If we move this up, it'll instantly get turned off since any reaction always sets the reagent_total to zero. Other option is make the reaction update
|
||||
//everything for every chemical removed, wich isn't a good option either.
|
||||
RC.on_reagent_change() //We need to check it now, because some reactions leave nothing left.
|
||||
@@ -0,0 +1,45 @@
|
||||
/datum/component/plumbing/splitter
|
||||
demand_connects = NORTH
|
||||
supply_connects = SOUTH | EAST
|
||||
|
||||
/datum/component/plumbing/splitter/Initialize()
|
||||
. = ..()
|
||||
if(. && !istype(parent, /obj/machinery/plumbing/splitter))
|
||||
return FALSE
|
||||
|
||||
/datum/component/plumbing/splitter/can_give(amount, reagent, datum/ductnet/net)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
. = FALSE
|
||||
var/direction
|
||||
for(var/A in ducts)
|
||||
if(ducts[A] == net)
|
||||
direction = get_original_direction(text2num(A))
|
||||
break
|
||||
var/obj/machinery/plumbing/splitter/S = parent
|
||||
switch(direction)
|
||||
if(SOUTH)
|
||||
if(S.turn_straight && S.transfer_straight <= amount)
|
||||
S.turn_straight = FALSE
|
||||
return TRUE
|
||||
if(EAST)
|
||||
if(!S.turn_straight && S.transfer_side <= amount)
|
||||
S.turn_straight = TRUE
|
||||
return TRUE
|
||||
|
||||
/datum/component/plumbing/splitter/transfer_to(datum/component/plumbing/target, amount, reagent, datum/ductnet/net)
|
||||
var/direction
|
||||
for(var/A in ducts)
|
||||
if(ducts[A] == net)
|
||||
direction = get_original_direction(text2num(A))
|
||||
break
|
||||
var/obj/machinery/plumbing/splitter/S = parent
|
||||
switch(direction)
|
||||
if(SOUTH)
|
||||
if(amount >= S.transfer_straight)
|
||||
amount = S.transfer_straight
|
||||
if(EAST)
|
||||
if(amount >= S.transfer_side)
|
||||
amount = S.transfer_side
|
||||
. = ..()
|
||||
@@ -29,10 +29,18 @@
|
||||
if(strength > RAD_MINIMUM_CONTAMINATION)
|
||||
SSradiation.warn(src)
|
||||
|
||||
//Let's make er glow
|
||||
//This relies on parent not being a turf or something. IF YOU CHANGE THAT, CHANGE THIS
|
||||
var/atom/movable/master = parent
|
||||
master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2))
|
||||
addtimer(CALLBACK(src, .proc/glow_loop, master), rand(1,19))//Things should look uneven
|
||||
|
||||
START_PROCESSING(SSradiation, src)
|
||||
|
||||
/datum/component/radioactive/Destroy()
|
||||
STOP_PROCESSING(SSradiation, src)
|
||||
var/atom/movable/master = parent
|
||||
master.remove_filter("rad_glow")
|
||||
return ..()
|
||||
|
||||
/datum/component/radioactive/process()
|
||||
@@ -46,6 +54,13 @@
|
||||
if(strength <= RAD_BACKGROUND_RADIATION)
|
||||
return PROCESS_KILL
|
||||
|
||||
|
||||
/datum/component/radioactive/proc/glow_loop(atom/movable/master)
|
||||
var/filter = master.get_filter("rad_glow")
|
||||
if(filter)
|
||||
animate(filter, alpha = 110, time = 15, loop = -1)
|
||||
animate(alpha = 40, time = 25)
|
||||
|
||||
/datum/component/radioactive/InheritComponent(datum/component/C, i_am_original, _strength, _source, _half_life, _can_contaminate)
|
||||
if(!i_am_original)
|
||||
return
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
var/mob/living/holder //who is currently benefiting from the shield.
|
||||
var/dissipating = FALSE //Is this shield meant to dissipate over time instead of recharging.
|
||||
var/del_on_overload = FALSE //will delete itself once it has no charges left.
|
||||
var/cached_vis_overlay //text identifier of the visual overlay.
|
||||
|
||||
/datum/component/shielded/Initialize(current, max = 3, delay = 20 SECONDS, rate = 1, slots, state = "shield-old", broken, \
|
||||
sound = 'sound/magic/charge.ogg', end_sound = 'sound/machines/ding.ogg', diss = FALSE, del_overload = FALSE)
|
||||
@@ -47,9 +48,8 @@
|
||||
holder = L
|
||||
var/to_add = charges >= 1 ? shield_state : broken_state
|
||||
if(to_add)
|
||||
var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add)
|
||||
M.layer = (L.layer > MOB_LAYER ? L.layer : MOB_LAYER) + 0.01
|
||||
holder.add_overlay(M, TRUE)
|
||||
var/layer = (L.layer > MOB_LAYER ? L.layer : MOB_LAYER) + 0.01
|
||||
SSvis_overlays.add_vis_overlay(L, 'icons/effects/effects.dmi', to_add, layer, GAME_PLANE, L.dir)
|
||||
|
||||
/datum/component/shielded/UnregisterFromParent()
|
||||
. = ..()
|
||||
@@ -57,9 +57,9 @@
|
||||
UnregisterSignal(parent, list(COMSIG_ITEM_RUN_BLOCK,COMSIG_ITEM_CHECK_BLOCK,COMSIG_ITEM_EQUIPPED,COMSIG_ITEM_DROPPED))
|
||||
if(holder)
|
||||
UnregisterSignal(holder, list(COMSIG_LIVING_RUN_BLOCK, COMSIG_LIVING_GET_BLOCKING_ITEMS))
|
||||
var/to_remove = charges >= 1 ? shield_state : broken_state
|
||||
if(to_remove)
|
||||
holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE)
|
||||
if(cached_vis_overlay)
|
||||
SSvis_overlays.remove_vis_overlay(holder, cached_vis_overlay)
|
||||
cached_vis_overlay = null
|
||||
holder = null
|
||||
|
||||
/datum/component/shielded/process()
|
||||
@@ -80,7 +80,7 @@
|
||||
holder.visible_message("[holder]'s shield overloads!")
|
||||
qdel(src)
|
||||
return
|
||||
if(holder && (old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1))
|
||||
if(holder && ((old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1)))
|
||||
update_shield_overlay(charges < 1)
|
||||
|
||||
/datum/component/shielded/proc/adjust_charges(amount)
|
||||
@@ -93,20 +93,19 @@
|
||||
holder.visible_message("[holder]'s shield overloads!")
|
||||
qdel(src)
|
||||
return
|
||||
if(holder && (old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1))
|
||||
if(holder && ((old_charges < 1 && charges >= 1) || (!del_on_overload && old_charges >= 1 && charges < 1)))
|
||||
update_shield_overlay(charges < 1)
|
||||
|
||||
/datum/component/shielded/proc/update_shield_overlay(broken)
|
||||
if(!holder)
|
||||
return
|
||||
var/to_remove = broken ? shield_state : broken_state
|
||||
var/to_add = broken ? broken_state : shield_state
|
||||
if(to_remove)
|
||||
holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE)
|
||||
if(cached_vis_overlay)
|
||||
SSvis_overlays.remove_vis_overlay(holder, cached_vis_overlay)
|
||||
cached_vis_overlay = null
|
||||
if(to_add)
|
||||
var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add)
|
||||
M.layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01
|
||||
holder.add_overlay(M, TRUE)
|
||||
var/layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01
|
||||
SSvis_overlays.add_vis_overlay(holder, 'icons/effects/effects.dmi', to_add, layer, GAME_PLANE, holder.dir)
|
||||
|
||||
/datum/component/shielded/proc/on_equip(obj/item/source, mob/living/equipper, slot)
|
||||
if(!(accepted_slots & slotdefine2slotbit(slot)))
|
||||
@@ -117,17 +116,16 @@
|
||||
RegisterSignal(equipper, COMSIG_LIVING_GET_BLOCKING_ITEMS, .proc/include_shield)
|
||||
var/to_add = charges >= 1 ? shield_state : broken_state
|
||||
if(to_add)
|
||||
var/mutable_appearance/M = mutable_appearance('icons/effects/effects.dmi', to_add)
|
||||
M.layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01
|
||||
equipper.add_overlay(M, TRUE)
|
||||
var/layer = (holder.layer > MOB_LAYER ? holder.layer : MOB_LAYER) + 0.01
|
||||
cached_vis_overlay = SSvis_overlays.add_vis_overlay(holder, 'icons/effects/effects.dmi', to_add, layer, GAME_PLANE, holder.dir)
|
||||
|
||||
/datum/component/shielded/proc/on_drop(obj/item/source, mob/dropper)
|
||||
if(holder == dropper)
|
||||
UnregisterSignal(holder, COMSIG_LIVING_GET_BLOCKING_ITEMS)
|
||||
UnregisterSignal(parent, list(COMSIG_ITEM_RUN_BLOCK, COMSIG_ITEM_CHECK_BLOCK))
|
||||
var/to_remove = charges >= 1 ? shield_state : broken_state
|
||||
if(to_remove)
|
||||
holder.cut_overlay(mutable_appearance('icons/effects/effects.dmi', to_remove), TRUE)
|
||||
if(cached_vis_overlay)
|
||||
SSvis_overlays.remove_vis_overlay(holder, cached_vis_overlay)
|
||||
cached_vis_overlay = null
|
||||
holder = null
|
||||
|
||||
/datum/component/shielded/proc/include_shield(mob/source, list/items)
|
||||
|
||||
@@ -11,6 +11,13 @@
|
||||
// This is to stop squeak spam from inhand usage
|
||||
var/last_use = 0
|
||||
var/use_delay = 20
|
||||
|
||||
// squeak cooldowns
|
||||
var/last_squeak = 0
|
||||
var/squeak_delay = 5
|
||||
|
||||
/// chance we'll be stopped from squeaking by cooldown when something crossing us squeaks
|
||||
var/cross_squeak_delay_chance = 33 // about 3 things can squeak at a time
|
||||
|
||||
/datum/component/squeak/Initialize(custom_sounds, volume_override, chance_override, step_delay_override, use_delay_override)
|
||||
if(!isatom(parent))
|
||||
@@ -19,6 +26,7 @@
|
||||
if(ismovable(parent))
|
||||
RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak)
|
||||
RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ITEM_WEARERCROSSED), .proc/play_squeak_crossed)
|
||||
RegisterSignal(parent, COMSIG_CROSS_SQUEAKED, .proc/delay_squeak)
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react)
|
||||
if(isitem(parent))
|
||||
RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak)
|
||||
@@ -39,20 +47,28 @@
|
||||
use_delay = use_delay_override
|
||||
|
||||
/datum/component/squeak/proc/play_squeak()
|
||||
do_play_squeak()
|
||||
|
||||
/datum/component/squeak/proc/do_play_squeak(bypass_cooldown = FALSE)
|
||||
if(!bypass_cooldown && ((last_squeak + squeak_delay) >= world.time))
|
||||
return FALSE
|
||||
if(prob(squeak_chance))
|
||||
if(!override_squeak_sounds)
|
||||
playsound(parent, pickweight(default_squeak_sounds), volume, 1, -1)
|
||||
else
|
||||
playsound(parent, pickweight(override_squeak_sounds), volume, 1, -1)
|
||||
last_squeak = world.time
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/component/squeak/proc/step_squeak()
|
||||
if(steps > step_delay)
|
||||
play_squeak()
|
||||
do_play_squeak(TRUE)
|
||||
steps = 0
|
||||
else
|
||||
steps++
|
||||
|
||||
/datum/component/squeak/proc/play_squeak_crossed(atom/movable/AM)
|
||||
/datum/component/squeak/proc/play_squeak_crossed(datum/source, atom/movable/AM)
|
||||
if(isitem(AM))
|
||||
var/obj/item/I = AM
|
||||
if(I.item_flags & ABSTRACT)
|
||||
@@ -63,13 +79,18 @@
|
||||
return
|
||||
var/atom/current_parent = parent
|
||||
if(isturf(current_parent.loc))
|
||||
play_squeak()
|
||||
if(do_play_squeak())
|
||||
SEND_SIGNAL(AM, COMSIG_CROSS_SQUEAKED)
|
||||
|
||||
/datum/component/squeak/proc/use_squeak()
|
||||
if(last_use + use_delay < world.time)
|
||||
last_use = world.time
|
||||
play_squeak()
|
||||
|
||||
/datum/component/squeak/proc/delay_squeak()
|
||||
if(prob(cross_squeak_delay_chance))
|
||||
last_squeak = world.time
|
||||
|
||||
/datum/component/squeak/proc/on_equip(datum/source, mob/equipper, slot)
|
||||
RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react, TRUE)
|
||||
|
||||
|
||||
@@ -105,6 +105,8 @@
|
||||
|
||||
/// Triggered on attack self of the item containing the component
|
||||
/datum/component/two_handed/proc/on_attack_self(datum/source, mob/user)
|
||||
if(!user.is_holding(parent))
|
||||
return //give no quarter to telekinesis powergaemrs (telekinetic wielding will desync the offhand and result in all sorts of bugs so no until someone codes it properly)
|
||||
if(wielded)
|
||||
unwield(user)
|
||||
else
|
||||
|
||||
@@ -29,8 +29,8 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
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)
|
||||
|
||||
/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/traitor_class/traitor_class)
|
||||
if(!isitem(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
@@ -143,23 +143,21 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
// an unlocked uplink blocks also opening the PDA or headset menu
|
||||
return COMPONENT_NO_INTERACT
|
||||
|
||||
/datum/component/uplink/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state)
|
||||
/datum/component/uplink/ui_state(mob/user)
|
||||
if(istype(parent, /obj/item/implant/uplink))
|
||||
return GLOB.not_incapacitated_state
|
||||
return GLOB.inventory_state
|
||||
|
||||
/datum/component/uplink/ui_interact(mob/user, datum/tgui/ui)
|
||||
active = TRUE
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
ui = SStgui.try_update_ui(user, src, ui)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "Uplink", name, 620, 580, master_ui, state)
|
||||
ui = new(user, src, "Uplink", name)
|
||||
// This UI is only ever opened by one person,
|
||||
// and never is updated outside of user input.
|
||||
ui.set_autoupdate(FALSE)
|
||||
ui.open()
|
||||
|
||||
/datum/component/uplink/ui_host(mob/user)
|
||||
if(istype(parent, /obj/item/implant)) //implants are like organs, not really located inside mobs codewise.
|
||||
var/obj/item/implant/I = parent
|
||||
return I.imp_in
|
||||
return ..()
|
||||
|
||||
/datum/component/uplink/ui_data(mob/user)
|
||||
if(!user.mind)
|
||||
return
|
||||
@@ -187,8 +185,18 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
is_inaccessible = FALSE
|
||||
if(is_inaccessible)
|
||||
continue
|
||||
/*
|
||||
if(I.restricted_species) //catpeople specfic gloves.
|
||||
if(ishuman(user))
|
||||
var/is_inaccessible = TRUE
|
||||
var/mob/living/carbon/human/H = user
|
||||
for(var/F in I.restricted_species)
|
||||
if(F == H.dna.species.id || debug)
|
||||
is_inaccessible = FALSE
|
||||
break
|
||||
if(is_inaccessible)
|
||||
continue
|
||||
*/
|
||||
cat["items"] += list(list(
|
||||
"name" = I.name,
|
||||
"cost" = I.cost,
|
||||
|
||||
+42
-6
@@ -1,13 +1,13 @@
|
||||
|
||||
//TODO: someone please get rid of this shit
|
||||
/datum/datacore
|
||||
var/medical[] = list()
|
||||
var/list/medical = list()
|
||||
var/medicalPrintCount = 0
|
||||
var/general[] = list()
|
||||
var/security[] = list()
|
||||
var/list/general = list()
|
||||
var/list/security = list()
|
||||
var/securityPrintCount = 0
|
||||
var/securityCrimeCounter = 0
|
||||
//This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
|
||||
var/locked[] = list()
|
||||
///This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
|
||||
var/list/locked = list()
|
||||
|
||||
/datum/data
|
||||
var/name = "data"
|
||||
@@ -91,6 +91,42 @@
|
||||
if(foundrecord)
|
||||
foundrecord.fields["rank"] = assignment
|
||||
|
||||
/datum/datacore/proc/get_manifest_tg() //copypasted from tg, renamed to avoid namespace conflicts
|
||||
var/list/manifest_out = list()
|
||||
var/list/departments = list(
|
||||
"Command" = GLOB.command_positions,
|
||||
"Security" = GLOB.security_positions,
|
||||
"Engineering" = GLOB.engineering_positions,
|
||||
"Medical" = GLOB.medical_positions,
|
||||
"Science" = GLOB.science_positions,
|
||||
"Supply" = GLOB.supply_positions,
|
||||
"Service" = GLOB.civilian_positions,
|
||||
"Silicon" = GLOB.nonhuman_positions
|
||||
)
|
||||
for(var/datum/data/record/t in GLOB.data_core.general)
|
||||
var/name = t.fields["name"]
|
||||
var/rank = t.fields["rank"]
|
||||
var/has_department = FALSE
|
||||
for(var/department in departments)
|
||||
var/list/jobs = departments[department]
|
||||
if(rank in jobs)
|
||||
if(!manifest_out[department])
|
||||
manifest_out[department] = list()
|
||||
manifest_out[department] += list(list(
|
||||
"name" = name,
|
||||
"rank" = rank
|
||||
))
|
||||
has_department = TRUE
|
||||
break
|
||||
if(!has_department)
|
||||
if(!manifest_out["Misc"])
|
||||
manifest_out["Misc"] = list()
|
||||
manifest_out["Misc"] += list(list(
|
||||
"name" = name,
|
||||
"rank" = rank
|
||||
))
|
||||
return manifest_out
|
||||
|
||||
/datum/datacore/proc/get_manifest(monochrome, OOC)
|
||||
var/list/heads = list()
|
||||
var/list/sec = list()
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
VV_DROPDOWN_OPTION(VV_HK_EXPOSE, "Show VV To Player")
|
||||
VV_DROPDOWN_OPTION(VV_HK_ADDCOMPONENT, "Add Component/Element")
|
||||
VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRAITS, "Modify Traits")
|
||||
#ifdef REFERENCE_TRACKING
|
||||
VV_DROPDOWN_OPTION(VV_HK_VIEW_REFERENCES, "View References")
|
||||
#endif
|
||||
|
||||
//This proc is only called if everything topic-wise is verified. The only verifications that should happen here is things like permission checks!
|
||||
//href_list is a reference, modifying it in these procs WILL change the rest of the proc in topic.dm of admin/view_variables!
|
||||
|
||||
@@ -31,4 +31,3 @@
|
||||
|
||||
/datum/symptom/inorganic_adaptation/OnRemove(datum/disease/advance/A)
|
||||
A.infectable_biotypes &= ~MOB_MINERAL
|
||||
|
||||
|
||||
+4
-2
@@ -50,6 +50,7 @@
|
||||
destination.dna.skin_tone_override = skin_tone_override
|
||||
destination.dna.features = features.Copy()
|
||||
destination.set_species(species.type, icon_update=0)
|
||||
destination.dna.species.say_mod = species.say_mod
|
||||
destination.dna.real_name = real_name
|
||||
destination.dna.nameless = nameless
|
||||
destination.dna.custom_species = custom_species
|
||||
@@ -74,6 +75,7 @@
|
||||
new_dna.skin_tone_override = skin_tone_override
|
||||
new_dna.features = features.Copy()
|
||||
new_dna.species = new species.type
|
||||
new_dna.species.say_mod = species.say_mod
|
||||
new_dna.real_name = real_name
|
||||
new_dna.nameless = nameless
|
||||
new_dna.custom_species = custom_species
|
||||
@@ -135,10 +137,10 @@
|
||||
L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"], 6)
|
||||
L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"], 6)
|
||||
if(!GLOB.mam_tails_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/mam_tails, GLOB.mam_tails_list)
|
||||
L[DNA_MUTANTTAIL_BLOCK] = construct_block(GLOB.mam_tails_list.Find(features["mam_tail"]), GLOB.mam_tails_list.len)
|
||||
if(!GLOB.mam_ears_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_ears, GLOB.mam_ears_list)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/ears/mam_ears, GLOB.mam_ears_list)
|
||||
L[DNA_MUTANTEAR_BLOCK] = construct_block(GLOB.mam_ears_list.Find(features["mam_ears"]), GLOB.mam_ears_list.len)
|
||||
if(!GLOB.mam_body_markings_list.len)
|
||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_body_markings, GLOB.mam_body_markings_list)
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
///We handle the unity part of plumbing. We track who is connected to who.
|
||||
/datum/ductnet
|
||||
var/list/suppliers = list()
|
||||
var/list/demanders = list()
|
||||
var/list/obj/machinery/duct/ducts = list()
|
||||
|
||||
var/capacity
|
||||
///Add a duct to our network
|
||||
/datum/ductnet/proc/add_duct(obj/machinery/duct/D)
|
||||
if(!D || (D in ducts))
|
||||
return
|
||||
ducts += D
|
||||
D.duct = src
|
||||
///Remove a duct from our network and commit suicide, because this is probably easier than to check who that duct was connected to and what part of us was lost
|
||||
/datum/ductnet/proc/remove_duct(obj/machinery/duct/ducting)
|
||||
destroy_network(FALSE)
|
||||
for(var/obj/machinery/duct/D in ducting.neighbours)
|
||||
addtimer(CALLBACK(D, /obj/machinery/duct/proc/reconnect), 0) //all needs to happen after the original duct that was destroyed finishes destroying itself
|
||||
addtimer(CALLBACK(D, /obj/machinery/duct/proc/generate_connects), 0)
|
||||
qdel(src)
|
||||
///add a plumbing object to either demanders or suppliers
|
||||
/datum/ductnet/proc/add_plumber(datum/component/plumbing/P, dir)
|
||||
if(!P.can_add(src, dir))
|
||||
return FALSE
|
||||
P.ducts[num2text(dir)] = src
|
||||
if(dir & P.supply_connects)
|
||||
suppliers += P
|
||||
else if(dir & P.demand_connects)
|
||||
demanders += P
|
||||
return TRUE
|
||||
///remove a plumber. we dont delete ourselves because ductnets dont persist through plumbing objects
|
||||
/datum/ductnet/proc/remove_plumber(datum/component/plumbing/P)
|
||||
suppliers.Remove(P) //we're probably only in one of these, but Remove() is inherently sane so this is fine
|
||||
demanders.Remove(P)
|
||||
|
||||
for(var/dir in P.ducts)
|
||||
if(P.ducts[dir] == src)
|
||||
P.ducts -= dir
|
||||
if(!ducts.len) //there were no ducts, so it was a direct connection. we destroy ourselves since a ductnet with only one plumber and no ducts is worthless
|
||||
destroy_network()
|
||||
///we combine ductnets. this occurs when someone connects to seperate sets of fluid ducts
|
||||
/datum/ductnet/proc/assimilate(datum/ductnet/D)
|
||||
ducts.Add(D.ducts)
|
||||
suppliers.Add(D.suppliers)
|
||||
demanders.Add(D.demanders)
|
||||
for(var/A in D.suppliers + D.demanders)
|
||||
var/datum/component/plumbing/P = A
|
||||
for(var/s in P.ducts)
|
||||
if(P.ducts[s] != D)
|
||||
continue
|
||||
P.ducts[s] = src //all your ducts are belong to us
|
||||
for(var/A in D.ducts)
|
||||
var/obj/machinery/duct/M = A
|
||||
M.duct = src //forget your old master
|
||||
|
||||
destroy_network()
|
||||
///destroy the network and tell all our ducts and plumbers we are gone
|
||||
/datum/ductnet/proc/destroy_network(delete=TRUE)
|
||||
for(var/A in suppliers + demanders)
|
||||
remove_plumber(A)
|
||||
for(var/A in ducts)
|
||||
var/obj/machinery/duct/D = A
|
||||
D.duct = null
|
||||
if(delete) //I don't want code to run with qdeleted objects because that can never be good, so keep this in-case the ductnet has some business left to attend to before commiting suicide
|
||||
qdel(src)
|
||||
@@ -0,0 +1,10 @@
|
||||
//blocks bluespace artillery beams that try to fly through
|
||||
//look not all elements need to be fancy
|
||||
/datum/element/bsa_blocker/Attach(datum/target)
|
||||
if(!isatom(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
RegisterSignal(target, COMSIG_ATOM_BSA_BEAM, .proc/block_bsa)
|
||||
return ..()
|
||||
|
||||
/datum/element/bsa_blocker/proc/block_bsa()
|
||||
return COMSIG_ATOM_BLOCKS_BSA_BEAM
|
||||
@@ -33,39 +33,34 @@
|
||||
if(description)
|
||||
RegisterSignal(A, COMSIG_PARENT_EXAMINE, .proc/examine)
|
||||
|
||||
apply(A, TRUE)
|
||||
|
||||
num_decals_per_atom[A]++
|
||||
apply(A)
|
||||
|
||||
/datum/element/decal/Detach(datum/target)
|
||||
var/atom/A = target
|
||||
remove(A, A.dir)
|
||||
UnregisterSignal(A, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE))
|
||||
LAZYREMOVE(num_decals_per_atom, A)
|
||||
num_decals_per_atom[A]--
|
||||
apply(A, TRUE)
|
||||
if(!num_decals_per_atom[A])
|
||||
UnregisterSignal(A, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE, COMSIG_ATOM_UPDATE_OVERLAYS))
|
||||
LAZYREMOVE(num_decals_per_atom, A)
|
||||
return ..()
|
||||
|
||||
/datum/element/decal/proc/remove(atom/target, old_dir)
|
||||
pic.dir = first_dir == NORTH ? target.dir : turn(first_dir, dir2angle(old_dir))
|
||||
for(var/i in 1 to num_decals_per_atom[target])
|
||||
target.cut_overlay(pic, TRUE)
|
||||
/datum/element/decal/proc/apply(atom/target, removing = FALSE)
|
||||
if(num_decals_per_atom[target] == 1 && !removing)
|
||||
RegisterSignal(target, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/apply_overlay, TRUE)
|
||||
target.update_icon()
|
||||
if(isitem(target))
|
||||
addtimer(CALLBACK(target, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE)
|
||||
|
||||
/datum/element/decal/proc/apply(atom/target, init = FALSE)
|
||||
pic.dir = first_dir == NORTH ? target.dir : turn(first_dir, dir2angle(target.dir))
|
||||
if(init)
|
||||
target.add_overlay(pic, TRUE)
|
||||
else
|
||||
for(var/i in 1 to num_decals_per_atom[target])
|
||||
target.add_overlay(pic, TRUE)
|
||||
if(isitem(target))
|
||||
addtimer(CALLBACK(target, /obj/item/.proc/update_slot_icon), 0, TIMER_UNIQUE)
|
||||
/datum/element/decal/proc/apply_overlay(atom/source, list/overlay_list)
|
||||
pic.dir = first_dir == NORTH ? source.dir : turn(first_dir, dir2angle(source.dir))
|
||||
for(var/i in 1 to num_decals_per_atom[source])
|
||||
overlay_list += pic
|
||||
|
||||
/datum/element/decal/proc/rotate_react(datum/source, old_dir, new_dir)
|
||||
/datum/element/decal/proc/rotate_react(atom/source, old_dir, new_dir)
|
||||
if(old_dir == new_dir)
|
||||
return
|
||||
remove(source, old_dir)
|
||||
apply(source)
|
||||
source.update_icon()
|
||||
|
||||
/datum/element/decal/proc/clean_react(datum/source, strength)
|
||||
if(strength >= cleanable)
|
||||
|
||||
+119
-5
@@ -32,20 +32,29 @@
|
||||
var/datum/action/innate/end_holocall/hangup //hangup action
|
||||
|
||||
var/call_start_time
|
||||
var/head_call = FALSE //calls from a head of staff autoconnect, if the receiving pad is not secure.
|
||||
|
||||
//creates a holocall made by `caller` from `calling_pad` to `callees`
|
||||
/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees)
|
||||
/datum/holocall/New(mob/living/caller, obj/machinery/holopad/calling_pad, list/callees, elevated_access = FALSE)
|
||||
call_start_time = world.time
|
||||
user = caller
|
||||
calling_pad.outgoing_call = src
|
||||
calling_holopad = calling_pad
|
||||
head_call = elevated_access
|
||||
dialed_holopads = list()
|
||||
|
||||
for(var/I in callees)
|
||||
var/obj/machinery/holopad/H = I
|
||||
if(!QDELETED(H) && H.is_operational())
|
||||
dialed_holopads += H
|
||||
H.say("Incoming call.")
|
||||
if(head_call)
|
||||
if(H.secure)
|
||||
calling_pad.say("Auto-connection refused, falling back to call mode.")
|
||||
H.say("Incoming call.")
|
||||
else
|
||||
H.say("Incoming connection.")
|
||||
else
|
||||
H.say("Incoming call.")
|
||||
LAZYADD(H.holo_calls, src)
|
||||
|
||||
if(!dialed_holopads.len)
|
||||
@@ -79,6 +88,7 @@
|
||||
dialed_holopads.Cut()
|
||||
|
||||
if(calling_holopad)
|
||||
calling_holopad.calling = FALSE
|
||||
calling_holopad.outgoing_call = null
|
||||
calling_holopad.SetLightsAndPower()
|
||||
calling_holopad = null
|
||||
@@ -145,6 +155,7 @@
|
||||
if(!Check())
|
||||
return
|
||||
|
||||
calling_holopad.calling = FALSE
|
||||
hologram = H.activate_holo(user)
|
||||
hologram.HC = src
|
||||
|
||||
@@ -160,6 +171,8 @@
|
||||
|
||||
hangup = new(eye, src)
|
||||
hangup.Grant(user)
|
||||
playsound(H, 'sound/machines/ping.ogg', 100)
|
||||
H.say("Connection established.")
|
||||
|
||||
//Checks the validity of a holocall and qdels itself if it's not. Returns TRUE if valid, FALSE otherwise
|
||||
/datum/holocall/proc/Check()
|
||||
@@ -178,7 +191,6 @@
|
||||
. = world.time < (call_start_time + HOLOPAD_MAX_DIAL_TIME)
|
||||
if(!.)
|
||||
calling_holopad.say("No answer received.")
|
||||
calling_holopad.temp = ""
|
||||
|
||||
if(!.)
|
||||
testing("Holocall Check fail")
|
||||
@@ -241,10 +253,10 @@
|
||||
record.caller_image = holodiskOriginal.record.caller_image
|
||||
record.entries = holodiskOriginal.record.entries.Copy()
|
||||
record.language = holodiskOriginal.record.language
|
||||
to_chat(user, "You copy the record from [holodiskOriginal] to [src] by connecting the ports!")
|
||||
to_chat(user, "<span class='notice'>You copy the record from [holodiskOriginal] to [src] by connecting the ports!</span>")
|
||||
name = holodiskOriginal.name
|
||||
else
|
||||
to_chat(user, "[holodiskOriginal] has no record on it!")
|
||||
to_chat(user, "<span class='warning'>[holodiskOriginal] has no record on it!</span>")
|
||||
..()
|
||||
|
||||
/obj/item/disk/holodisk/proc/build_record()
|
||||
@@ -331,6 +343,21 @@
|
||||
DELAY 20"}
|
||||
|
||||
/datum/preset_holoimage/engineer
|
||||
outfit_type = /datum/outfit/job/engineer
|
||||
|
||||
/datum/preset_holoimage/engineer/rig
|
||||
outfit_type = /datum/outfit/job/engineer/gloved/rig
|
||||
|
||||
/datum/preset_holoimage/engineer/ce
|
||||
outfit_type = /datum/outfit/job/ce
|
||||
|
||||
/datum/preset_holoimage/engineer/ce/rig
|
||||
outfit_type = /datum/outfit/job/engineer/gloved/rig
|
||||
|
||||
/datum/preset_holoimage/engineer/atmos
|
||||
outfit_type = /datum/outfit/job/atmos
|
||||
|
||||
/datum/preset_holoimage/engineer/atmos/rig
|
||||
outfit_type = /datum/outfit/job/engineer/gloved/rig
|
||||
|
||||
/datum/preset_holoimage/researcher
|
||||
@@ -350,3 +377,90 @@
|
||||
|
||||
/datum/preset_holoimage/clown
|
||||
outfit_type = /datum/outfit/job/clown
|
||||
|
||||
/obj/item/disk/holodisk/donutstation/whiteship
|
||||
name = "Blackbox Print-out #DS024"
|
||||
desc = "A holodisk containing the last viable recording of DS024's blackbox."
|
||||
preset_image_type = /datum/preset_holoimage/engineer/ce
|
||||
preset_record_text = {"
|
||||
NAME Geysr Shorthalt
|
||||
SAY Engine renovations complete and the ships been loaded. We all ready?
|
||||
DELAY 25
|
||||
PRESET /datum/preset_holoimage/engineer
|
||||
NAME Jacob Ullman
|
||||
SAY Lets blow this popsicle stand of a station.
|
||||
DELAY 20
|
||||
PRESET /datum/preset_holoimage/engineer/atmos
|
||||
NAME Lindsey Cuffler
|
||||
SAY Uh, sir? Shouldn't we call for a secondary shuttle? The bluespace drive on this thing made an awfully weird noise when we jumped here..
|
||||
DELAY 30
|
||||
PRESET /datum/preset_holoimage/engineer/ce
|
||||
NAME Geysr Shorthalt
|
||||
SAY Pah! Ship techie at the dock said to give it a good few kicks if it started acting up, let me just..
|
||||
DELAY 25
|
||||
SOUND punch
|
||||
SOUND sparks
|
||||
DELAY 10
|
||||
SOUND punch
|
||||
SOUND sparks
|
||||
DELAY 10
|
||||
SOUND punch
|
||||
SOUND sparks
|
||||
SOUND warpspeed
|
||||
DELAY 15
|
||||
PRESET /datum/preset_holoimage/engineer/atmos
|
||||
NAME Lindsey Cuffler
|
||||
SAY Uhh.. is it supposed to be doing that??
|
||||
DELAY 15
|
||||
PRESET /datum/preset_holoimage/engineer/ce
|
||||
NAME Geysr Shorthalt
|
||||
SAY See? Working as intended. Now, are we all ready?
|
||||
DELAY 10
|
||||
PRESET /datum/preset_holoimage/engineer
|
||||
NAME Jacob Ullman
|
||||
SAY Is it supposed to be glowing like that?
|
||||
DELAY 20
|
||||
SOUND explosion
|
||||
|
||||
"}
|
||||
|
||||
/obj/item/disk/holodisk/ruin/snowengieruin
|
||||
name = "Blackbox Print-out #EB412"
|
||||
desc = "A holodisk containing the last moments of EB412. There's a bloody fingerprint on it."
|
||||
preset_image_type = /datum/preset_holoimage/engineer
|
||||
preset_record_text = {"
|
||||
NAME Dave Tundrale
|
||||
SAY Maria, how's Build?
|
||||
DELAY 10
|
||||
NAME Maria Dell
|
||||
PRESET /datum/preset_holoimage/engineer/atmos
|
||||
SAY It's fine, don't worry. I've got Plastic on it. And frankly, i'm kinda busy with, the, uhhm, incinerator.
|
||||
DELAY 30
|
||||
NAME Dave Tundrale
|
||||
PRESET /datum/preset_holoimage/engineer
|
||||
SAY Aight, wonderful. The science mans been kinda shit though. No RCDs-
|
||||
DELAY 20
|
||||
NAME Maria Dell
|
||||
PRESET /datum/preset_holoimage/engineer/atmos
|
||||
SAY Enough about your RCDs. They're not even that important, just bui-
|
||||
DELAY 15
|
||||
SOUND explosion
|
||||
DELAY 10
|
||||
SAY Oh, shit!
|
||||
DELAY 10
|
||||
PRESET /datum/preset_holoimage/engineer/atmos/rig
|
||||
LANGUAGE /datum/language/narsie
|
||||
NAME Unknown
|
||||
SAY RISE, MY LORD!!
|
||||
DELAY 10
|
||||
LANGUAGE /datum/language/common
|
||||
NAME Plastic
|
||||
PRESET /datum/preset_holoimage/engineer/rig
|
||||
SAY Fuck, fuck, fuck!
|
||||
DELAY 20
|
||||
SAY It's loose! CALL THE FUCKING SHUTT-
|
||||
DELAY 10
|
||||
PRESET /datum/preset_holoimage/corgi
|
||||
NAME Blackbox Automated Message
|
||||
SAY Connection lost. Dumping audio logs to disk.
|
||||
DELAY 50"}
|
||||
|
||||
+2
-1
@@ -28,7 +28,8 @@ GLOBAL_LIST_INIT(huds, list(
|
||||
ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(),
|
||||
ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(),
|
||||
ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker(),
|
||||
ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag()
|
||||
ANTAG_HUD_FUGITIVE = new/datum/atom_hud/antag(),
|
||||
ANTAG_HUD_HERETIC = new/datum/atom_hud/antag/hidden()
|
||||
))
|
||||
|
||||
/datum/atom_hud
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user