Merge remote-tracking branch 'upstream/master' into haha
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.
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -6471,6 +6471,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"alX" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/chemistry)
|
||||
"alY" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -8073,6 +8079,13 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/showroomfloor,
|
||||
/area/security/warden)
|
||||
"apI" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
},
|
||||
/obj/structure/closet/secure_closet/medical1,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"apJ" = (
|
||||
/turf/closed/wall,
|
||||
/area/construction/mining/aux_base)
|
||||
@@ -9385,6 +9398,13 @@
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/construction/mining/aux_base)
|
||||
"asG" = (
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/disposal/bin,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"asH" = (
|
||||
/obj/structure/closet/toolcloset,
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
@@ -9428,6 +9448,35 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"asL" = (
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/reagent_containers/spray/cleaner,
|
||||
/obj/item/crowbar,
|
||||
/obj/item/clothing/neck/stethoscope,
|
||||
/obj/item/storage/box/gloves{
|
||||
pixel_x = 3;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/item/storage/box/masks,
|
||||
/obj/structure/table,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"asM" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/crowbar,
|
||||
/obj/item/clothing/neck/stethoscope,
|
||||
/obj/item/reagent_containers/spray/cleaner,
|
||||
/obj/structure/sign/warning/nosmoking{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/medical/sleeper)
|
||||
"asN" = (
|
||||
/obj/machinery/airalarm{
|
||||
dir = 4;
|
||||
@@ -9457,12 +9506,66 @@
|
||||
/obj/structure/closet/firecloset,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"asT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/medbay/central)
|
||||
"asU" = (
|
||||
/obj/structure/sign/warning/nosmoking{
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/medical/glass{
|
||||
id_tag = "MedbayFoyer";
|
||||
name = "Medbay";
|
||||
req_access_txt = "5"
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"asV" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/medbay/central)
|
||||
"asW" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/security/detectives_office)
|
||||
"asX" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/airlock/medical/glass{
|
||||
id_tag = "MedbayFoyer";
|
||||
name = "Medbay";
|
||||
req_access_txt = "5"
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"asY" = (
|
||||
/obj/structure/sign/warning/nosmoking{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"ata" = (
|
||||
/turf/open/floor/wood,
|
||||
/area/lawoffice)
|
||||
@@ -24471,12 +24574,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/gravity_generator)
|
||||
"bgP" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/chemistry)
|
||||
"bgQ" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
@@ -28214,12 +28311,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bpy" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bpz" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
@@ -28708,13 +28799,6 @@
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bqM" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/medical/medbay/central)
|
||||
"bqN" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 5
|
||||
@@ -28747,22 +28831,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bqR" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/crowbar,
|
||||
/obj/item/clothing/neck/stethoscope,
|
||||
/obj/item/reagent_containers/spray/cleaner,
|
||||
/obj/structure/sign/warning/nosmoking{
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bqS" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -29265,13 +29333,6 @@
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/heads/hop)
|
||||
"brV" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/medical/medbay/central)
|
||||
"brW" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -29279,18 +29340,6 @@
|
||||
/obj/machinery/vending/cart,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/heads/hop)
|
||||
"brX" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/box/masks,
|
||||
/obj/item/storage/box/gloves{
|
||||
pixel_x = 3;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"brY" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
@@ -31215,23 +31264,10 @@
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/medical/medbay/central)
|
||||
"bwy" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bwz" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bwA" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/medbay/central)
|
||||
"bwB" = (
|
||||
/obj/structure/chair,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
@@ -32971,17 +33007,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"bAp" = (
|
||||
/obj/structure/closet/secure_closet/medical1,
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"bAq" = (
|
||||
/obj/machinery/sleeper{
|
||||
dir = 8
|
||||
@@ -55998,6 +56023,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/theatre)
|
||||
"kEm" = (
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"kEY" = (
|
||||
/obj/effect/landmark/stationroom/box/engine,
|
||||
/turf/open/space/basic,
|
||||
@@ -58125,6 +58154,10 @@
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/fore)
|
||||
"rtU" = (
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/starboard/fore)
|
||||
"ruo" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -85309,7 +85342,7 @@ bVI
|
||||
bTA
|
||||
xgk
|
||||
bHE
|
||||
bHE
|
||||
kEm
|
||||
bHE
|
||||
bHE
|
||||
bHE
|
||||
@@ -92215,7 +92248,7 @@ btJ
|
||||
buV
|
||||
bws
|
||||
bqH
|
||||
aJq
|
||||
asY
|
||||
aJq
|
||||
byW
|
||||
bCv
|
||||
@@ -94266,8 +94299,8 @@ bfF
|
||||
bfF
|
||||
bfF
|
||||
bfF
|
||||
bqM
|
||||
brV
|
||||
asT
|
||||
asV
|
||||
bof
|
||||
bwv
|
||||
bvj
|
||||
@@ -94523,8 +94556,8 @@ bmF
|
||||
bob
|
||||
bnB
|
||||
bfF
|
||||
bqR
|
||||
brX
|
||||
asU
|
||||
asX
|
||||
bof
|
||||
bwx
|
||||
bvj
|
||||
@@ -95031,7 +95064,7 @@ aYV
|
||||
bfF
|
||||
bhc
|
||||
bip
|
||||
bgP
|
||||
alX
|
||||
bjL
|
||||
bkL
|
||||
bmT
|
||||
@@ -95297,7 +95330,7 @@ bpF
|
||||
bqS
|
||||
brY
|
||||
bwz
|
||||
bwy
|
||||
asG
|
||||
bvj
|
||||
bza
|
||||
bxb
|
||||
@@ -95553,10 +95586,10 @@ bpt
|
||||
bfF
|
||||
bqV
|
||||
bEe
|
||||
bhh
|
||||
bBL
|
||||
bwA
|
||||
bvj
|
||||
bAl
|
||||
asM
|
||||
bAl
|
||||
bvh
|
||||
bzS
|
||||
@@ -96071,7 +96104,7 @@ bvh
|
||||
ajv
|
||||
bxN
|
||||
bze
|
||||
bAp
|
||||
asL
|
||||
bvh
|
||||
bCG
|
||||
bBd
|
||||
@@ -98119,7 +98152,7 @@ bjX
|
||||
blp
|
||||
bmO
|
||||
bhi
|
||||
bpy
|
||||
apI
|
||||
bwz
|
||||
brg
|
||||
btZ
|
||||
@@ -104254,7 +104287,7 @@ anf
|
||||
anf
|
||||
alP
|
||||
alP
|
||||
anf
|
||||
rtU
|
||||
alP
|
||||
alP
|
||||
alP
|
||||
|
||||
@@ -242,13 +242,13 @@
|
||||
pixel_x = 22
|
||||
},
|
||||
/obj/structure/rack,
|
||||
/obj/item/gun/energy{
|
||||
/obj/item/gun/energy/e_gun{
|
||||
pixel_y = -6
|
||||
},
|
||||
/obj/item/gun/energy{
|
||||
/obj/item/gun/energy/e_gun{
|
||||
pixel_y = -3
|
||||
},
|
||||
/obj/item/gun/energy,
|
||||
/obj/item/gun/energy/e_gun,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/security/armory)
|
||||
"aaI" = (
|
||||
|
||||
@@ -126384,6 +126384,13 @@
|
||||
},
|
||||
/turf/open/space,
|
||||
/area/engine/atmos)
|
||||
"kqo" = (
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/fore)
|
||||
"ktK" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
@@ -127042,6 +127049,10 @@
|
||||
dir = 1
|
||||
},
|
||||
/area/science/circuit)
|
||||
"pok" = (
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/crew_quarters/theatre/abandoned)
|
||||
"poI" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/tank/internals/anesthetic,
|
||||
@@ -164027,7 +164038,7 @@ aof
|
||||
aky
|
||||
aky
|
||||
aky
|
||||
arD
|
||||
kqo
|
||||
asZ
|
||||
aui
|
||||
avF
|
||||
@@ -178786,7 +178797,7 @@ dCX
|
||||
dEj
|
||||
dFq
|
||||
dGJ
|
||||
dGJ
|
||||
pok
|
||||
dJy
|
||||
dGJ
|
||||
dGJ
|
||||
|
||||
@@ -78498,6 +78498,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"
|
||||
},
|
||||
@@ -84902,6 +84903,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
|
||||
@@ -125028,7 +125034,7 @@ bAP
|
||||
bCf
|
||||
bhQ
|
||||
bhQ
|
||||
bAM
|
||||
jGN
|
||||
bGH
|
||||
bOc
|
||||
bHZ
|
||||
|
||||
@@ -80285,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
|
||||
@@ -82038,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"
|
||||
@@ -107578,7 +107587,7 @@ aaA
|
||||
abY
|
||||
ayy
|
||||
acw
|
||||
acw
|
||||
vDO
|
||||
acw
|
||||
acw
|
||||
aeG
|
||||
@@ -135197,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
|
||||
"}
|
||||
@@ -10324,6 +10324,7 @@
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"atd" = (
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/plating{
|
||||
icon_state = "panelscorched"
|
||||
},
|
||||
@@ -82149,6 +82150,16 @@
|
||||
/obj/structure/grille,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"pbc" = (
|
||||
/obj/structure/light_construct/small{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/computer/security/telescreen/entertainment{
|
||||
pixel_x = 30
|
||||
},
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/wood,
|
||||
/area/maintenance/port/aft)
|
||||
"pbF" = (
|
||||
/obj/machinery/portable_atmospherics/canister,
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
|
||||
@@ -100175,7 +100186,7 @@ csT
|
||||
dux
|
||||
cxQ
|
||||
ckS
|
||||
cmi
|
||||
pbc
|
||||
cnk
|
||||
ckP
|
||||
cmi
|
||||
|
||||
@@ -41988,6 +41988,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"
|
||||
@@ -45205,6 +45215,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
|
||||
@@ -79446,7 +79460,7 @@ aFM
|
||||
aOH
|
||||
aOT
|
||||
aPV
|
||||
aRm
|
||||
uXV
|
||||
aSI
|
||||
aRC
|
||||
aKm
|
||||
@@ -92526,7 +92540,7 @@ aSD
|
||||
aRz
|
||||
aRz
|
||||
aRz
|
||||
sGY
|
||||
saI
|
||||
aRz
|
||||
sIb
|
||||
bsD
|
||||
|
||||
@@ -54046,6 +54046,20 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/construction/mining/aux_base)
|
||||
"fgS" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/mob/living/simple_animal/opossum/poppy,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/maintenance/department/engine)
|
||||
"fhM" = (
|
||||
/obj/item/storage/secure/safe{
|
||||
pixel_x = -22
|
||||
@@ -58645,6 +58659,10 @@
|
||||
"pyw" = (
|
||||
/turf/open/space/basic,
|
||||
/area/hallway/secondary/entry)
|
||||
"pzF" = (
|
||||
/mob/living/simple_animal/opossum,
|
||||
/turf/open/floor/wood,
|
||||
/area/maintenance/department/crew_quarters/dorms)
|
||||
"pBD" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
@@ -83454,7 +83472,7 @@ bHP
|
||||
bJb
|
||||
bJb
|
||||
bJb
|
||||
bJb
|
||||
fgS
|
||||
bJb
|
||||
bJb
|
||||
bPp
|
||||
@@ -99823,7 +99841,7 @@ akh
|
||||
alc
|
||||
alR
|
||||
amF
|
||||
alb
|
||||
pzF
|
||||
alb
|
||||
anm
|
||||
ajv
|
||||
|
||||
+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,
|
||||
|
||||
+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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -332,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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -128,6 +128,10 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
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
|
||||
|
||||
@@ -135,4 +139,4 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
return sorttext(initial(b.name),initial(a.name))
|
||||
|
||||
/proc/cmp_typepaths_asc(A, B)
|
||||
return sorttext("[B]","[A]")
|
||||
return sorttext("[B]","[A]")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -231,4 +231,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"))
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -126,7 +126,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 +135,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 +188,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 +200,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 +212,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 +224,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 +236,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 +269,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//
|
||||
////////////
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -144,6 +144,8 @@ GLOBAL_LIST_EMPTY(uplinks)
|
||||
return COMPONENT_NO_INTERACT
|
||||
|
||||
/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)
|
||||
|
||||
@@ -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
|
||||
+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
|
||||
|
||||
@@ -287,7 +287,7 @@ Unless you know what you're doing, only use the first three numbers. They're in
|
||||
desc = "Clock Cult? Never heard of it."
|
||||
color = "#92661A"
|
||||
categories = list(MAT_CATEGORY_RIGID = TRUE, MAT_CATEGORY_BASE_RECIPES = TRUE)
|
||||
sheet_type = /obj/item/stack/tile/bronze
|
||||
sheet_type = /obj/item/stack/sheet/bronze
|
||||
value_per_unit = 0.025
|
||||
armor_modifiers = list("melee" = 1, "bullet" = 1, "laser" = 1, "energy" = 1, "bomb" = 1, "bio" = 1, "rad" = 1.5, "fire" = 1.5, "acid" = 1.5)
|
||||
beauty_modifier = 0.2
|
||||
|
||||
@@ -162,6 +162,11 @@
|
||||
mood_change = -8
|
||||
timeout = 3 MINUTES
|
||||
|
||||
/datum/mood_event/gates_of_mansus
|
||||
description = "<span class='boldwarning'>LIVING IN A PERFORMANCE IS WORSE THAN DEATH</span>\n"
|
||||
mood_change = -25
|
||||
timeout = 4 MINUTES
|
||||
|
||||
//These are unused so far but I want to remember them to use them later
|
||||
|
||||
/datum/mood_event/cloned_corpse
|
||||
|
||||
@@ -70,6 +70,11 @@
|
||||
mood_change = 40 //maybe being a cultist isnt that bad after all
|
||||
hidden = TRUE
|
||||
|
||||
/datum/mood_event/heretics
|
||||
description = "<span class='nicegreen'>THE HIGHER I RISE, THE MORE I SEE.</span>\n"
|
||||
mood_change = 12 //maybe being a cultist isnt that bad after all
|
||||
hidden = TRUE
|
||||
|
||||
/datum/mood_event/family_heirloom
|
||||
description = "<span class='nicegreen'>My family heirloom is safe with me.</span>\n"
|
||||
mood_change = 1
|
||||
|
||||
@@ -325,6 +325,12 @@
|
||||
name = "Abductor Replication Lab"
|
||||
description = "Some scientists tried and almost succeeded to recreate abductor tools. Somewhat slower and a bit less modern than their originals, these tools are the best you can get if you aren't an alien."
|
||||
|
||||
/datum/map_template/ruin/space/spacediner
|
||||
id = "spacediner"
|
||||
suffix = "spacediner.dmm"
|
||||
name = "Space Diner"
|
||||
description = "Come, traveler of the bluespace planes. Sit, enjoy a drink and take one of the fair maidens for a night. The exit is the way you came in, via that teleporter thingy, but do remember to stay safe."
|
||||
|
||||
//Space ruins for the station z
|
||||
/datum/map_template/ruin/spacenearstation
|
||||
prefix = "_maps/RandomRuins/SpaceRuinsStation/"
|
||||
|
||||
@@ -403,6 +403,197 @@
|
||||
owner.underlays -= marked_underlay //if this is being called, we should have an owner at this point.
|
||||
..()
|
||||
|
||||
/datum/status_effect/eldritch
|
||||
duration = 15 SECONDS
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = null
|
||||
on_remove_on_mob_delete = TRUE
|
||||
///underlay used to indicate that someone is marked
|
||||
var/mutable_appearance/marked_underlay
|
||||
///path for the underlay
|
||||
var/effect_sprite = ""
|
||||
|
||||
/datum/status_effect/eldritch/on_creation(mob/living/new_owner, ...)
|
||||
marked_underlay = mutable_appearance('icons/effects/effects.dmi', effect_sprite,BELOW_MOB_LAYER)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/eldritch/on_apply()
|
||||
. = ..()
|
||||
if(owner.mob_size >= MOB_SIZE_HUMAN)
|
||||
RegisterSignal(owner,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/update_owner_underlay)
|
||||
owner.update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/datum/status_effect/eldritch/on_remove()
|
||||
UnregisterSignal(owner,COMSIG_ATOM_UPDATE_OVERLAYS)
|
||||
owner.update_icon()
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/eldritch/proc/update_owner_underlay(atom/source, list/overlays)
|
||||
overlays += marked_underlay
|
||||
|
||||
/datum/status_effect/eldritch/Destroy()
|
||||
QDEL_NULL(marked_underlay)
|
||||
return ..()
|
||||
|
||||
/**
|
||||
* What happens when this mark gets popped
|
||||
*
|
||||
* Adds actual functionality to each mark
|
||||
*/
|
||||
/datum/status_effect/eldritch/proc/on_effect()
|
||||
playsound(owner, 'sound/magic/repulse.ogg', 75, TRUE)
|
||||
qdel(src) //what happens when this is procced.
|
||||
|
||||
//Each mark has diffrent effects when it is destroyed that combine with the mansus grasp effect.
|
||||
/datum/status_effect/eldritch/flesh
|
||||
id = "flesh_mark"
|
||||
effect_sprite = "emark1"
|
||||
|
||||
/datum/status_effect/eldritch/flesh/on_effect()
|
||||
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/obj/item/bodypart/bodypart = pick(H.bodyparts)
|
||||
var/datum/wound/slash/severe/crit_wound = new
|
||||
crit_wound.apply_wound(bodypart)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/eldritch/ash
|
||||
id = "ash_mark"
|
||||
effect_sprite = "emark2"
|
||||
///Dictates how much damage and stamina loss this mark will cause.
|
||||
var/repetitions = 1
|
||||
|
||||
/datum/status_effect/eldritch/ash/on_creation(mob/living/new_owner, _repetition = 5)
|
||||
. = ..()
|
||||
repetitions = min(1,_repetition)
|
||||
|
||||
/datum/status_effect/eldritch/ash/on_effect()
|
||||
if(iscarbon(owner))
|
||||
var/mob/living/carbon/carbon_owner = owner
|
||||
carbon_owner.adjustStaminaLoss(10 * repetitions)
|
||||
carbon_owner.adjustFireLoss(5 * repetitions)
|
||||
for(var/mob/living/carbon/victim in range(1,carbon_owner))
|
||||
if(IS_HERETIC(victim) || victim == carbon_owner)
|
||||
continue
|
||||
victim.apply_status_effect(type,repetitions-1)
|
||||
break
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/eldritch/rust
|
||||
id = "rust_mark"
|
||||
effect_sprite = "emark3"
|
||||
|
||||
/datum/status_effect/eldritch/rust/on_effect()
|
||||
if(!iscarbon(owner))
|
||||
return
|
||||
var/mob/living/carbon/carbon_owner = owner
|
||||
for(var/obj/item/I in carbon_owner.get_all_gear()) //Affects roughly 75% of items
|
||||
if(!QDELETED(I) && prob(75)) //Just in case
|
||||
I.take_damage(100)
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/corrosion_curse
|
||||
id = "corrosion_curse"
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = null
|
||||
tick_interval = 1 SECONDS
|
||||
|
||||
/datum/status_effect/corrosion_curse/on_creation(mob/living/new_owner, ...)
|
||||
. = ..()
|
||||
to_chat(owner, "<span class='danger'>Your feel your body starting to break apart...</span>")
|
||||
|
||||
/datum/status_effect/corrosion_curse/tick()
|
||||
. = ..()
|
||||
if(!ishuman(owner))
|
||||
return
|
||||
var/mob/living/carbon/human/H = owner
|
||||
var/chance = rand(0,100)
|
||||
switch(chance)
|
||||
if(0 to 19)
|
||||
H.vomit()
|
||||
if(20 to 29)
|
||||
H.Dizzy(10)
|
||||
if(30 to 39)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_LIVER,5)
|
||||
if(40 to 49)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_HEART,5)
|
||||
if(50 to 59)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_STOMACH,5)
|
||||
if(60 to 69)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_EYES,10)
|
||||
if(70 to 79)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_EARS,10)
|
||||
if(80 to 89)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_LUNGS,10)
|
||||
if(90 to 99)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_TONGUE,10)
|
||||
if(100)
|
||||
H.adjustOrganLoss(ORGAN_SLOT_BRAIN,20)
|
||||
|
||||
/datum/status_effect/amok
|
||||
id = "amok"
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
alert_type = null
|
||||
duration = 10 SECONDS
|
||||
tick_interval = 1 SECONDS
|
||||
|
||||
/datum/status_effect/amok/on_apply(mob/living/afflicted)
|
||||
. = ..()
|
||||
to_chat(owner, "<span class='boldwarning'>Your feel filled with a rage that is not your own!</span>")
|
||||
|
||||
/datum/status_effect/amok/tick()
|
||||
. = ..()
|
||||
var/prev_intent = owner.a_intent
|
||||
owner.a_intent = INTENT_HARM
|
||||
|
||||
var/list/mob/living/targets = list()
|
||||
for(var/mob/living/potential_target in oview(owner, 1))
|
||||
if(IS_HERETIC(potential_target) || potential_target.mind?.has_antag_datum(/datum/antagonist/heretic_monster))
|
||||
continue
|
||||
targets += potential_target
|
||||
if(LAZYLEN(targets))
|
||||
owner.log_message(" attacked someone due to the amok debuff.", LOG_ATTACK) //the following attack will log itself
|
||||
owner.ClickOn(pick(targets))
|
||||
owner.a_intent = prev_intent
|
||||
|
||||
/datum/status_effect/cloudstruck
|
||||
id = "cloudstruck"
|
||||
status_type = STATUS_EFFECT_REPLACE
|
||||
duration = 3 SECONDS
|
||||
on_remove_on_mob_delete = TRUE
|
||||
///This overlay is applied to the owner for the duration of the effect.
|
||||
var/mutable_appearance/mob_overlay
|
||||
|
||||
/datum/status_effect/cloudstruck/on_creation(mob/living/new_owner, set_duration)
|
||||
if(isnum(set_duration))
|
||||
duration = set_duration
|
||||
. = ..()
|
||||
|
||||
/datum/status_effect/cloudstruck/on_apply()
|
||||
. = ..()
|
||||
mob_overlay = mutable_appearance('icons/effects/eldritch.dmi', "cloud_swirl", ABOVE_MOB_LAYER)
|
||||
owner.overlays += mob_overlay
|
||||
owner.update_icon()
|
||||
ADD_TRAIT(owner, TRAIT_BLIND, "cloudstruck")
|
||||
return TRUE
|
||||
|
||||
/datum/status_effect/cloudstruck/on_remove()
|
||||
. = ..()
|
||||
if(QDELETED(owner))
|
||||
return
|
||||
REMOVE_TRAIT(owner, TRAIT_BLIND, "cloudstruck")
|
||||
if(owner)
|
||||
owner.overlays -= mob_overlay
|
||||
owner.update_icon()
|
||||
|
||||
/datum/status_effect/cloudstruck/Destroy()
|
||||
. = ..()
|
||||
QDEL_NULL(mob_overlay)
|
||||
|
||||
|
||||
/datum/status_effect/stacking/saw_bleed
|
||||
id = "saw_bleed"
|
||||
tick_interval = 6
|
||||
|
||||
@@ -1121,3 +1121,11 @@
|
||||
max_grav = max(G.setting,max_grav)
|
||||
return max_grav
|
||||
return SSmapping.level_trait(T.z, ZTRAIT_GRAVITY)
|
||||
|
||||
/**
|
||||
* Causes effects when the atom gets hit by a rust effect from heretics
|
||||
*
|
||||
* Override this if you want custom behaviour in whatever gets hit by the rust
|
||||
*/
|
||||
/atom/proc/rust_heretic_act()
|
||||
return
|
||||
|
||||
@@ -191,6 +191,24 @@
|
||||
SSticker.mode_result = "loss - rev heads killed"
|
||||
SSticker.news_report = REVS_LOSE
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// //
|
||||
// HERETIC SMUGGLER //
|
||||
// //
|
||||
//////////////////////////////////////////////
|
||||
|
||||
/datum/dynamic_ruleset/latejoin/heretic_smuggler
|
||||
name = "Heretic Smuggler"
|
||||
antag_datum = /datum/antagonist/heretic
|
||||
antag_flag = ROLE_HERETIC
|
||||
protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
|
||||
restricted_roles = list("AI","Cyborg")
|
||||
required_candidates = 1
|
||||
weight = 4
|
||||
cost = 10
|
||||
requirements = list(40,30,20,10,10,10,10,10,10,10)
|
||||
repeatable = TRUE
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// //
|
||||
// BLOODSUCKERS //
|
||||
|
||||
@@ -143,6 +143,46 @@
|
||||
changeling.add_antag_datum(new_antag)
|
||||
return TRUE
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// //
|
||||
// ELDRITCH CULT //
|
||||
// //
|
||||
//////////////////////////////////////////////
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/heretics
|
||||
name = "Heretics"
|
||||
antag_flag = ROLE_HERETIC
|
||||
antag_datum = /datum/antagonist/heretic
|
||||
protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain")
|
||||
restricted_roles = list("AI", "Cyborg")
|
||||
required_candidates = 1
|
||||
weight = 3
|
||||
cost = 20
|
||||
scaling_cost = 15
|
||||
requirements = list(50,45,45,40,35,20,20,15,10,10)
|
||||
antag_cap = list(1,1,1,1,2,2,2,2,3,3)
|
||||
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/heretics/pre_execute()
|
||||
. = ..()
|
||||
var/num_ecult = antag_cap[indice_pop] * (scaled_times + 1)
|
||||
|
||||
for (var/i = 1 to num_ecult)
|
||||
var/mob/picked_candidate = pick_n_take(candidates)
|
||||
assigned += picked_candidate.mind
|
||||
picked_candidate.mind.restricted_roles = restricted_roles
|
||||
picked_candidate.mind.special_role = ROLE_HERETIC
|
||||
return TRUE
|
||||
|
||||
/datum/dynamic_ruleset/roundstart/heretics/execute()
|
||||
|
||||
for(var/c in assigned)
|
||||
var/datum/mind/cultie = c
|
||||
var/datum/antagonist/heretic/new_antag = new antag_datum()
|
||||
cultie.add_antag_datum(new_antag)
|
||||
|
||||
return TRUE
|
||||
|
||||
//////////////////////////////////////////////
|
||||
// //
|
||||
// WIZARDS //
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
/datum/game_mode/heretics
|
||||
name = "heresy"
|
||||
config_tag = "heresy"
|
||||
antag_flag = ROLE_HERETIC
|
||||
false_report_weight = 5
|
||||
restricted_jobs = list("AI", "Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to heretic role blacklist
|
||||
required_players = 15
|
||||
required_enemies = 1
|
||||
recommended_enemies = 4
|
||||
reroll_friendly = 1
|
||||
enemy_minimum_age = 0
|
||||
round_ends_with_antag_death = 0
|
||||
|
||||
announce_span = "danger"
|
||||
announce_text = "Heretics have been spotted on the station!\n\
|
||||
<span class='danger'>Heretics</span>: Accomplish your objectives.\n\
|
||||
<span class='notice'>Crew</span>: Do not let the madman succeed!"
|
||||
|
||||
var/ecult_possible = 4 //hard limit on culties if scaling is turned off
|
||||
var/num_ecult = 1
|
||||
var/list/culties = list()
|
||||
|
||||
/datum/game_mode/heretics/pre_setup()
|
||||
|
||||
if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||
restricted_jobs += protected_jobs
|
||||
|
||||
if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
restricted_jobs += "Assistant"
|
||||
|
||||
|
||||
var/esc = CONFIG_GET(number/ecult_scaling_coeff)
|
||||
if(esc)
|
||||
num_ecult = min(max(1, min(round(num_players() / (esc * 2)) + 2, round(num_players() / esc))),4)
|
||||
else
|
||||
num_ecult = max(1, min(num_players(), ecult_possible))
|
||||
|
||||
for(var/i in 1 to num_ecult)
|
||||
if(!antag_candidates.len)
|
||||
break
|
||||
var/datum/mind/cultie = antag_pick(antag_candidates)
|
||||
antag_candidates -= cultie
|
||||
cultie.special_role = ROLE_HERETIC
|
||||
cultie.restricted_roles = restricted_jobs
|
||||
culties += cultie
|
||||
|
||||
var/enough_heretics = culties.len > 0
|
||||
|
||||
if(!enough_heretics)
|
||||
setup_error = "Not enough heretic candidates"
|
||||
return FALSE
|
||||
else
|
||||
for(var/antag in culties)
|
||||
return TRUE
|
||||
|
||||
/datum/game_mode/heretics/post_setup()
|
||||
for(var/c in culties)
|
||||
var/datum/mind/cultie = c
|
||||
log_game("[key_name(cultie)] has been selected as a heretic!")
|
||||
var/datum/antagonist/heretic/new_antag = new()
|
||||
cultie.add_antag_datum(new_antag)
|
||||
return ..()
|
||||
|
||||
/datum/game_mode/heretics/generate_report()
|
||||
return "Cybersun Industries has announced that they have successfully raided a high-security library. The library contained a very dangerous book that was \
|
||||
shown to posses anomalous properties. We suspect that the book has been copied over, Stay vigilant!"
|
||||
+59
-175
@@ -12,9 +12,9 @@
|
||||
density = FALSE
|
||||
state_open = TRUE
|
||||
circuit = /obj/item/circuitboard/machine/sleeper
|
||||
req_access = list(ACCESS_CMO) //Used for reagent deletion and addition of non medicines
|
||||
|
||||
var/efficiency = 1
|
||||
var/min_health = 30
|
||||
var/min_health = -25
|
||||
var/list/available_chems
|
||||
var/controls_inside = FALSE
|
||||
var/list/possible_chems = list(
|
||||
@@ -31,32 +31,13 @@
|
||||
|
||||
/obj/machinery/sleeper/Initialize()
|
||||
. = ..()
|
||||
create_reagents(500, NO_REACT)
|
||||
// if(mapload)
|
||||
// component_parts -= circuit
|
||||
// QDEL_NULL(circuit)
|
||||
occupant_typecache = GLOB.typecache_living
|
||||
update_icon()
|
||||
reset_chem_buttons()
|
||||
RefreshParts()
|
||||
add_inital_chems()
|
||||
new_occupant_dir = dir
|
||||
|
||||
/obj/machinery/sleeper/setDir(newdir)
|
||||
. = ..()
|
||||
new_occupant_dir = dir
|
||||
|
||||
/obj/machinery/sleeper/on_deconstruction()
|
||||
var/obj/item/reagent_containers/sleeper_buffer/buffer = new (loc)
|
||||
buffer.volume = reagents.maximum_volume
|
||||
buffer.reagents.maximum_volume = reagents.maximum_volume
|
||||
reagents.trans_to(buffer.reagents, reagents.total_volume)
|
||||
|
||||
/obj/machinery/sleeper/proc/add_inital_chems()
|
||||
for(var/i in available_chems)
|
||||
var/datum/reagent/R = reagents.has_reagent(i)
|
||||
if(!R)
|
||||
reagents.add_reagent(i, (20))
|
||||
continue
|
||||
if(R.volume < 20)
|
||||
reagents.add_reagent(i, (20 - R.volume))
|
||||
|
||||
/obj/machinery/sleeper/RefreshParts()
|
||||
var/E
|
||||
@@ -73,15 +54,11 @@
|
||||
available_chems |= possible_chems[i]
|
||||
reset_chem_buttons()
|
||||
|
||||
//Total container size 500 - 2000u
|
||||
if(reagents)
|
||||
reagents.maximum_volume = (500*E)
|
||||
|
||||
|
||||
/obj/machinery/sleeper/update_icon_state()
|
||||
icon_state = initial(icon_state)
|
||||
if(state_open)
|
||||
icon_state += "-open"
|
||||
icon_state = "[initial(icon_state)]-open"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/machinery/sleeper/container_resist(mob/living/user)
|
||||
visible_message("<span class='notice'>[occupant] emerges from [src]!</span>",
|
||||
@@ -98,10 +75,12 @@
|
||||
|
||||
/obj/machinery/sleeper/open_machine()
|
||||
if(!state_open && !panel_open)
|
||||
// flick("[initial(icon_state)]-anim", src)
|
||||
..()
|
||||
|
||||
/obj/machinery/sleeper/close_machine(mob/user)
|
||||
if((isnull(user) || istype(user)) && state_open && !panel_open)
|
||||
// flick("[initial(icon_state)]-anim", src)
|
||||
..(user)
|
||||
var/mob/living/mob_occupant = occupant
|
||||
if(mob_occupant && mob_occupant.stat != DEAD)
|
||||
@@ -112,46 +91,23 @@
|
||||
if (. & EMP_PROTECT_SELF)
|
||||
return
|
||||
if(is_operational() && occupant)
|
||||
var/datum/reagent/R = pick(reagents.reagent_list)
|
||||
var/datum/reagent/R = pick(reagents.reagent_list) //cit specific
|
||||
inject_chem(R.type, occupant)
|
||||
open_machine()
|
||||
//Is this too much?
|
||||
//Is this too much? Cit specific
|
||||
if(severity == EMP_HEAVY)
|
||||
var/chem = pick(available_chems)
|
||||
available_chems -= chem
|
||||
available_chems += get_random_reagent_id()
|
||||
reset_chem_buttons()
|
||||
|
||||
/obj/machinery/sleeper/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/reagent_containers/sleeper_buffer))
|
||||
var/obj/item/reagent_containers/sleeper_buffer/SB = I
|
||||
if((SB.reagents.total_volume + reagents.total_volume) < reagents.maximum_volume)
|
||||
SB.reagents.trans_to(reagents, SB.reagents.total_volume)
|
||||
visible_message("[user] places the [SB] into the [src].")
|
||||
qdel(SB)
|
||||
return
|
||||
else
|
||||
SB.reagents.trans_to(reagents, SB.reagents.total_volume)
|
||||
visible_message("[user] adds as much as they can to the [src] from the [SB].")
|
||||
return
|
||||
if(istype(I, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/RC = I
|
||||
if(RC.reagents.total_volume == 0)
|
||||
to_chat(user, "<span class='notice'>The [I] is empty!</span>")
|
||||
for(var/datum/reagent/R in RC.reagents.reagent_list)
|
||||
if((obj_flags & EMAGGED) || (allowed(usr)))
|
||||
break
|
||||
if(!istype(R, /datum/reagent/medicine))
|
||||
visible_message("The [src] gives out a hearty boop and rejects the [I]. The Sleeper's screen flashes with a pompous \"Medicines only, please.\"")
|
||||
return
|
||||
RC.reagents.trans_to(reagents, 1000)
|
||||
visible_message("[user] adds as much as they can to the [src] from the [I].")
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/sleeper/MouseDrop_T(mob/target, mob/user)
|
||||
if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser())
|
||||
if(user.stat || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser())
|
||||
return
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(!(L.mobility_flags & MOBILITY_STAND))
|
||||
return
|
||||
close_machine(target)
|
||||
|
||||
/obj/machinery/sleeper/screwdriver_act(mob/living/user, obj/item/I)
|
||||
@@ -187,23 +143,9 @@
|
||||
visible_message("<span class='notice'>[usr] pries open [src].</span>", "<span class='notice'>You pry open [src].</span>")
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/sleeper/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(!user.canUseTopic(src, !hasSiliconAccessInArea(user)))
|
||||
return
|
||||
if(state_open)
|
||||
close_machine()
|
||||
else
|
||||
open_machine()
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/sleeper/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click [src] to [state_open ? "close" : "open"] it.</span>"
|
||||
|
||||
/obj/machinery/sleeper/ui_state(mob/user)
|
||||
if(controls_inside)
|
||||
return GLOB.notcontained_state
|
||||
return GLOB.contained_state
|
||||
return GLOB.default_state
|
||||
|
||||
/obj/machinery/sleeper/ui_interact(mob/user, datum/tgui/ui)
|
||||
@@ -212,6 +154,18 @@
|
||||
ui = new(user, src, "Sleeper", name)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/sleeper/AltClick(mob/user)
|
||||
if(!user.canUseTopic(src, !issilicon(user)))
|
||||
return
|
||||
if(state_open)
|
||||
close_machine()
|
||||
else
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/sleeper/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click [src] to [state_open ? "close" : "open"] it.</span>"
|
||||
|
||||
/obj/machinery/sleeper/process()
|
||||
..()
|
||||
check_nap_violations()
|
||||
@@ -221,22 +175,13 @@
|
||||
|
||||
/obj/machinery/sleeper/ui_data()
|
||||
var/list/data = list()
|
||||
var/chemical_list = list()
|
||||
var/blood_percent = 0
|
||||
|
||||
data["occupied"] = occupant ? 1 : 0
|
||||
data["open"] = state_open
|
||||
data["blood_levels"] = blood_percent
|
||||
data["blood_status"] = "Patient either has no blood, or does not require it to function."
|
||||
data["chemical_list"] = chemical_list
|
||||
|
||||
data["chems"] = list()
|
||||
for(var/chem in available_chems)
|
||||
var/datum/reagent/R = reagents.has_reagent(chem)
|
||||
R = GLOB.chemical_reagents_list[chem]
|
||||
data["synthchems"] += list(list("name" = R.name, "id" = R.type, "synth_allowed" = synth_allowed(chem)))
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
data["chems"] += list(list("name" = R.name, "id" = R.type, "vol" = R.volume, "purity" = R.purity, "allowed" = chem_allowed(R.type)))
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[chem]
|
||||
data["chems"] += list(list("name" = R.name, "id" = R.type, "allowed" = chem_allowed(chem)))
|
||||
|
||||
data["occupant"] = list()
|
||||
var/mob/living/mob_occupant = occupant
|
||||
@@ -264,40 +209,10 @@
|
||||
data["occupant"]["fireLoss"] = mob_occupant.getFireLoss()
|
||||
data["occupant"]["cloneLoss"] = mob_occupant.getCloneLoss()
|
||||
data["occupant"]["brainLoss"] = mob_occupant.getOrganLoss(ORGAN_SLOT_BRAIN)
|
||||
|
||||
if(mob_occupant.reagents.reagent_list.len)
|
||||
data["occupant"]["reagents"] = list()
|
||||
if(mob_occupant.reagents && mob_occupant.reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in mob_occupant.reagents.reagent_list)
|
||||
chemical_list += list(list("name" = R.name, "volume" = R.volume))
|
||||
else
|
||||
chemical_list = "Patient has no reagents."
|
||||
|
||||
data["occupant"]["failing_organs"] = list()
|
||||
var/mob/living/carbon/C = mob_occupant
|
||||
if(C)
|
||||
for(var/obj/item/organ/Or in C.getFailingOrgans())
|
||||
if(istype(Or, /obj/item/organ/brain))
|
||||
continue
|
||||
data["occupant"]["failing_organs"] += list(list("name" = Or.name))
|
||||
|
||||
if(istype(C)) //Non-carbons shouldn't be able to enter sleepers, but this is to prevent runtimes if something ever breaks
|
||||
if(mob_occupant.has_dna()) // Blood-stuff is mostly a copy-paste from the healthscanner.
|
||||
blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100)
|
||||
var/blood_id = C.get_blood_id()
|
||||
var/blood_warning = ""
|
||||
if(blood_percent < 80)
|
||||
blood_warning = "Patient has low blood levels."
|
||||
if(blood_percent < 60)
|
||||
blood_warning = "Patient has DANGEROUSLY low blood levels."
|
||||
if(blood_id)
|
||||
var/blood_type = C.dna.blood_type
|
||||
if(!(blood_id in GLOB.blood_reagent_types)) // special blood substance
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[blood_id]
|
||||
if(R)
|
||||
blood_type = R.name
|
||||
else
|
||||
blood_type = blood_id
|
||||
data["blood_status"] = "Patient has [blood_type] type blood. [blood_warning]"
|
||||
data["blood_levels"] = blood_percent
|
||||
data["occupant"]["reagents"] += list(list("name" = R.name, "volume" = R.volume))
|
||||
return data
|
||||
|
||||
/obj/machinery/sleeper/ui_act(action, params)
|
||||
@@ -314,37 +229,14 @@
|
||||
. = TRUE
|
||||
if("inject")
|
||||
var/chem = text2path(params["chem"])
|
||||
var/amount = text2num(params["volume"])
|
||||
if(!is_operational() || !mob_occupant || isnull(chem))
|
||||
return
|
||||
if(mob_occupant.health < min_health && chem != /datum/reagent/medicine/epinephrine)
|
||||
return
|
||||
if(inject_chem(chem, usr, amount))
|
||||
if(inject_chem(chem, usr))
|
||||
. = TRUE
|
||||
if(scrambled_chems && prob(5))
|
||||
to_chat(usr, "<span class='warning'>Chemical system re-route detected, results may not be as expected!</span>")
|
||||
if("synth")
|
||||
var/chem = text2path(params["chem"])
|
||||
if(!is_operational())
|
||||
return
|
||||
reagents.add_reagent(chem_buttons[chem], 10) //other_purity = 0.75 for when the mechanics are in
|
||||
if("purge")
|
||||
var/chem = text2path(params["chem"])
|
||||
if(allowed(usr))
|
||||
if(!is_operational())
|
||||
return
|
||||
reagents.remove_reagent(chem, 1000)
|
||||
return
|
||||
if(chem in available_chems)
|
||||
if(!is_operational())
|
||||
return
|
||||
/*var/datum/reagent/R = reagents.has_reagent(chem) //For when purity effects are in
|
||||
if(R.purity < 0.8)*/
|
||||
reagents.remove_reagent(chem, 1000)
|
||||
else
|
||||
visible_message("<span class='warning'>Access Denied.</span>")
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
|
||||
|
||||
/obj/machinery/sleeper/emag_act(mob/user)
|
||||
. = ..()
|
||||
@@ -353,10 +245,9 @@
|
||||
to_chat(user, "<span class='warning'>You scramble the sleeper's user interface!</span>")
|
||||
return TRUE
|
||||
|
||||
//trans to
|
||||
/obj/machinery/sleeper/proc/inject_chem(chem, mob/user, volume = 10)
|
||||
if(chem_allowed(chem))
|
||||
reagents.trans_id_to(occupant, chem, volume)//emag effect kicks in here so that the "intended" chem is used for all checks, for extra FUUU
|
||||
/obj/machinery/sleeper/proc/inject_chem(chem, mob/user)
|
||||
if((chem in available_chems) && chem_allowed(chem))
|
||||
occupant.reagents.add_reagent(chem_buttons[chem], 10) //emag effect kicks in here so that the "intended" chem is used for all checks, for extra FUUU
|
||||
if(user)
|
||||
log_combat(user, occupant, "injected [chem] into", addition = "via [src]")
|
||||
return TRUE
|
||||
@@ -369,14 +260,6 @@
|
||||
var/occ_health = mob_occupant.health > min_health || chem == /datum/reagent/medicine/epinephrine
|
||||
return amount && occ_health
|
||||
|
||||
/obj/machinery/sleeper/proc/synth_allowed(chem)
|
||||
var/datum/reagent/R = reagents.has_reagent(chem)
|
||||
if(!R)
|
||||
return TRUE
|
||||
if(R.volume < 50)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/sleeper/proc/reset_chem_buttons()
|
||||
scrambled_chems = FALSE
|
||||
LAZYINITLIST(chem_buttons)
|
||||
@@ -416,23 +299,6 @@
|
||||
component_parts += new /obj/item/stack/cable_coil(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/sleeper/clockwork
|
||||
name = "soothing sleeper"
|
||||
desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch."
|
||||
icon_state = "sleeper_clockwork"
|
||||
enter_message = "<span class='bold inathneq_small'>You hear the gentle hum and click of machinery, and are lulled into a sense of peace.</span>"
|
||||
possible_chems = list(list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine,
|
||||
/datum/reagent/medicine/kelotane, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol))
|
||||
|
||||
/obj/machinery/sleeper/clockwork/process()
|
||||
if(occupant && isliving(occupant))
|
||||
var/mob/living/L = occupant
|
||||
if(GLOB.clockwork_vitality) //If there's Vitality, the sleeper has passive healing
|
||||
GLOB.clockwork_vitality = max(0, GLOB.clockwork_vitality - 1)
|
||||
L.adjustBruteLoss(-1)
|
||||
L.adjustFireLoss(-1)
|
||||
L.adjustOxyLoss(-5)
|
||||
|
||||
/obj/machinery/sleeper/old
|
||||
icon_state = "oldpod"
|
||||
|
||||
@@ -443,8 +309,6 @@
|
||||
idle_power_usage = 3000
|
||||
circuit = /obj/item/circuitboard/machine/sleeper/party
|
||||
var/leddit = FALSE //Get it like reddit and lead alright fine
|
||||
ui_x = 310
|
||||
ui_y = 400
|
||||
|
||||
controls_inside = TRUE
|
||||
possible_chems = list(
|
||||
@@ -477,3 +341,23 @@
|
||||
/obj/machinery/sleeper/party/emag_act(mob/user)
|
||||
..()
|
||||
leddit = TRUE
|
||||
|
||||
/obj/machinery/sleeper/clockwork
|
||||
name = "soothing sleeper"
|
||||
desc = "A large cryogenics unit built from brass. Its surface is pleasantly cool the touch."
|
||||
icon_state = "sleeper_clockwork"
|
||||
enter_message = "<span class='bold inathneq_small'>You hear the gentle hum and click of machinery, and are lulled into a sense of peace.</span>"
|
||||
possible_chems = list(
|
||||
list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/salbutamol, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/oculine, /datum/reagent/medicine/inacusiate, /datum/reagent/medicine/mannitol)
|
||||
) //everything is available at start
|
||||
fair_market_price = 0 //it's free
|
||||
|
||||
/obj/machinery/sleeper/clockwork/process()
|
||||
..()
|
||||
if(occupant && isliving(occupant))
|
||||
var/mob/living/L = occupant
|
||||
if(GLOB.clockwork_vitality) //If there's Vitality, the sleeper has passive healing
|
||||
GLOB.clockwork_vitality = max(0, GLOB.clockwork_vitality - 1)
|
||||
L.adjustBruteLoss(-1)
|
||||
L.adjustFireLoss(-1)
|
||||
L.adjustOxyLoss(-5)
|
||||
|
||||
@@ -92,6 +92,7 @@ Class Procs:
|
||||
pressure_resistance = 15
|
||||
max_integrity = 200
|
||||
layer = BELOW_OBJ_LAYER //keeps shit coming out of the machine from ending up underneath it.
|
||||
flags_1 = DEFAULT_RICOCHET_1
|
||||
flags_ricochet = RICOCHET_HARD
|
||||
ricochet_chance_mod = 0.3
|
||||
|
||||
@@ -546,3 +547,6 @@ Class Procs:
|
||||
. = . % 9
|
||||
AM.pixel_x = -8 + ((.%3)*8)
|
||||
AM.pixel_y = -8 + (round( . / 3)*8)
|
||||
|
||||
/obj/machinery/rust_heretic_act()
|
||||
take_damage(500, BRUTE, "melee", 1)
|
||||
|
||||
@@ -310,6 +310,17 @@
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/bronze
|
||||
name = "bronze airlock"
|
||||
icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi'
|
||||
overlays_file = 'icons/obj/doors/airlocks/clockwork/overlays.dmi'
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_bronze
|
||||
|
||||
/obj/machinery/door/airlock/bronze/seethru
|
||||
assemblytype = /obj/structure/door_assembly/door_assembly_bronze/seethru
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
|
||||
//////////////////////////////////
|
||||
/*
|
||||
Station2 Airlocks
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
max_integrity = 350
|
||||
armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 70)
|
||||
CanAtmosPass = ATMOS_PASS_DENSITY
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
flags_1 = PREVENT_CLICK_UNDER_1|DEFAULT_RICOCHET_1
|
||||
ricochet_chance_mod = 0.8
|
||||
|
||||
interaction_flags_atom = INTERACT_ATOM_UI_INTERACT
|
||||
|
||||
@@ -298,7 +298,7 @@
|
||||
|
||||
/obj/machinery/door/firedoor/border_only
|
||||
icon = 'icons/obj/doors/edge_Doorfire.dmi'
|
||||
flags_1 = ON_BORDER_1
|
||||
flags_1 = ON_BORDER_1|DEFAULT_RICOCHET_1
|
||||
CanAtmosPass = ATMOS_PASS_PROC
|
||||
|
||||
/obj/machinery/door/firedoor/border_only/closed
|
||||
@@ -320,7 +320,7 @@
|
||||
to_chat(M, "<span class='notice'>You pull [M.pulling] through [src] right as it closes</span>")
|
||||
M.pulling.forceMove(T1)
|
||||
M.start_pulling(M2)
|
||||
|
||||
|
||||
for(var/mob/living/M in T2)
|
||||
if(M.stat == CONSCIOUS && M.pulling && M.pulling.loc == T1 && !M.pulling.anchored && M.pulling.move_resist <= M.move_force)
|
||||
var/mob/living/M2 = M.pulling
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
integrity_failure = 0
|
||||
armor = list("melee" = 20, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 10, "bio" = 100, "rad" = 100, "fire" = 70, "acid" = 100)
|
||||
visible = FALSE
|
||||
flags_1 = ON_BORDER_1
|
||||
flags_1 = ON_BORDER_1|DEFAULT_RICOCHET_1
|
||||
opacity = 0
|
||||
CanAtmosPass = ATMOS_PASS_PROC
|
||||
interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_REQUIRES_SILICON | INTERACT_MACHINE_OPEN
|
||||
|
||||
@@ -153,6 +153,9 @@
|
||||
/obj/mecha/get_cell()
|
||||
return cell
|
||||
|
||||
/obj/mecha/rust_heretic_act()
|
||||
take_damage(500, BRUTE)
|
||||
|
||||
/obj/mecha/Destroy()
|
||||
go_out()
|
||||
var/mob/living/silicon/ai/AI
|
||||
|
||||
@@ -168,3 +168,26 @@
|
||||
items = list(
|
||||
/obj/item/clothing/mask/gas/sexymime,
|
||||
/obj/item/clothing/under/rank/civilian/mime/sexy)
|
||||
|
||||
/obj/effect/spawner/bundle/crate/Initialize(mapload)
|
||||
if(items && items.len)
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/structure/closet/LC = locate(/obj/structure/closet) in T
|
||||
if(LC)
|
||||
for(var/path in items)
|
||||
new path(LC)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/effect/spawner/bundle/crate/mosin
|
||||
name = "Mosin-Nagant spawner"
|
||||
items = list(
|
||||
/obj/item/gun/ballistic/shotgun/boltaction,
|
||||
/obj/item/ammo_box/a762
|
||||
)
|
||||
|
||||
/obj/effect/spawner/bundle/crate/surplusrifle
|
||||
name = "surplus rifle spawner"
|
||||
items = list(
|
||||
/obj/item/gun/ballistic/automatic/surplus,
|
||||
/obj/item/ammo_box/magazine/m10mm/rifle
|
||||
)
|
||||
|
||||
@@ -139,6 +139,23 @@
|
||||
/obj/effect/temp_visual/dir_setting/curse/hand
|
||||
icon_state = "cursehand"
|
||||
|
||||
/obj/effect/temp_visual/bsa_splash
|
||||
name = "\improper Bluespace energy wave"
|
||||
desc = "A massive, rippling wave of bluepace energy, all rapidly exhausting itself the moment it leaves the concentrated beam of light."
|
||||
icon = 'icons/effects/beam_splash.dmi'
|
||||
icon_state = "beam_splash_l"
|
||||
layer = ABOVE_ALL_MOB_LAYER
|
||||
pixel_y = -16
|
||||
duration = 50
|
||||
|
||||
/obj/effect/temp_visual/bsa_splash/Initialize(mapload, dir)
|
||||
. = ..()
|
||||
switch(dir)
|
||||
if(WEST)
|
||||
icon_state = "beam_splash_w"
|
||||
if(EAST)
|
||||
icon_state = "beam_splash_e"
|
||||
|
||||
/obj/effect/temp_visual/wizard
|
||||
name = "water"
|
||||
icon = 'icons/mob/mob.dmi'
|
||||
|
||||
@@ -51,6 +51,10 @@
|
||||
// no attacking while blocking
|
||||
block_lock_attacking = TRUE
|
||||
block_projectile_mitigation = 75
|
||||
// more efficient vs projectiles
|
||||
block_stamina_efficiency_override = list(
|
||||
TEXT_ATTACK_TYPE_PROJECTILE = 4
|
||||
)
|
||||
|
||||
parry_time_windup = 0
|
||||
parry_time_active = 8
|
||||
@@ -65,14 +69,20 @@
|
||||
parry_imperfect_falloff_percent = 10
|
||||
parry_efficiency_to_counterattack = 100
|
||||
parry_efficiency_considered_successful = 25 // VERY generous
|
||||
parry_efficiency_perfect = 90
|
||||
parry_failed_stagger_duration = 3 SECONDS
|
||||
parry_failed_clickcd_duration = CLICK_CD_MELEE
|
||||
|
||||
// more efficient vs projectiles
|
||||
block_stamina_efficiency_override = list(
|
||||
TEXT_ATTACK_TYPE_PROJECTILE = 4
|
||||
)
|
||||
/obj/item/dualsaber/active_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return, override_direction)
|
||||
if((attack_type & ATTACK_TYPE_PROJECTILE) && is_energy_reflectable_projectile(object))
|
||||
block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER
|
||||
return BLOCK_SUCCESS | BLOCK_REDIRECTED | BLOCK_SHOULD_REDIRECT
|
||||
return ..()
|
||||
|
||||
/obj/item/dualsaber/on_active_parry(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, list/block_return, parry_efficiency, parry_time)
|
||||
. = ..()
|
||||
if(parry_efficiency >= 90) // perfect parry
|
||||
block_return[BLOCK_RETURN_REDIRECT_METHOD] = REDIRECT_METHOD_RETURN_TO_SENDER
|
||||
. |= BLOCK_SHOULD_REDIRECT
|
||||
|
||||
/obj/item/dualsaber/Initialize()
|
||||
. = ..()
|
||||
@@ -342,12 +352,30 @@
|
||||
name = "divine lightblade"
|
||||
desc = "A giant blade of bright and holy light, said to cut down the wicked with ease."
|
||||
force = 5
|
||||
block_chance = 50
|
||||
armour_penetration = 0
|
||||
block_parry_data = /datum/block_parry_data/chaplain
|
||||
var/chaplain_spawnable = TRUE
|
||||
can_reflect = FALSE
|
||||
obj_flags = UNIQUE_RENAME
|
||||
|
||||
/datum/block_parry_data/chaplain
|
||||
parry_stamina_cost = 12
|
||||
parry_time_windup = 2
|
||||
parry_time_active = 5
|
||||
parry_time_spindown = 3
|
||||
// parry_flags = PARRY_DEFAULT_HANDLE_FEEDBACK
|
||||
parry_time_perfect = 1
|
||||
parry_time_perfect_leeway = 1
|
||||
parry_imperfect_falloff_percent = 7.5
|
||||
parry_efficiency_to_counterattack = 100
|
||||
parry_efficiency_considered_successful = 80
|
||||
parry_efficiency_perfect = 120
|
||||
parry_efficiency_perfect_override = list(
|
||||
TEXT_ATTACK_TYPE_PROJECTILE = 30,
|
||||
)
|
||||
parry_failed_stagger_duration = 3 SECONDS
|
||||
parry_failed_clickcd_duration = 2 SECONDS
|
||||
|
||||
/obj/item/dualsaber/hypereutactic/chaplain/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, force_unwielded=5, force_wielded=20, \
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
user.set_nutrition(NUTRITION_LEVEL_STARVING + 50)
|
||||
|
||||
/obj/item/book/granter/spell/blind
|
||||
spell = /obj/effect/proc_holder/spell/targeted/trigger/blind
|
||||
spell = /obj/effect/proc_holder/spell/pointed/trigger/blind
|
||||
spellname = "blind"
|
||||
icon_state ="bookblind"
|
||||
desc = "This book looks blurry, no matter how you look at it."
|
||||
@@ -265,7 +265,7 @@
|
||||
user.blind_eyes(10)
|
||||
|
||||
/obj/item/book/granter/spell/mindswap
|
||||
spell = /obj/effect/proc_holder/spell/targeted/mind_transfer
|
||||
spell = /obj/effect/proc_holder/spell/pointed/mind_transfer
|
||||
spellname = "mindswap"
|
||||
icon_state ="bookmindswap"
|
||||
desc = "This book's cover is pristine, though its pages look ragged and torn."
|
||||
@@ -289,7 +289,7 @@
|
||||
if(stored_swap == user)
|
||||
to_chat(user,"<span class='notice'>You stare at the book some more, but there doesn't seem to be anything else to learn...</span>")
|
||||
return
|
||||
var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new
|
||||
var/obj/effect/proc_holder/spell/pointed/mind_transfer/swapper = new
|
||||
if(swapper.cast(list(stored_swap), user, TRUE, TRUE))
|
||||
to_chat(user,"<span class='warning'>You're suddenly somewhere else... and someone else?!</span>")
|
||||
to_chat(stored_swap,"<span class='warning'>Suddenly you're staring at [src] again... where are you, who are you?!</span>")
|
||||
@@ -324,7 +324,7 @@
|
||||
user.DefaultCombatKnockdown(40)
|
||||
|
||||
/obj/item/book/granter/spell/barnyard
|
||||
spell = /obj/effect/proc_holder/spell/targeted/barnyardcurse
|
||||
spell = /obj/effect/proc_holder/spell/pointed/barnyardcurse
|
||||
spellname = "barnyard"
|
||||
icon_state ="bookhorses"
|
||||
desc = "This book is more horse than your mind has room for."
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
/obj/item/implant/uplink/Initialize(mapload, _owner)
|
||||
. = ..()
|
||||
AddComponent(/datum/component/uplink, _owner, TRUE, FALSE, null, starting_tc, GLOB.not_incapacitated_state)
|
||||
AddComponent(/datum/component/uplink, _owner, TRUE, FALSE, null, starting_tc)
|
||||
|
||||
/obj/item/implanter/uplink
|
||||
name = "implanter (uplink)"
|
||||
|
||||
@@ -240,7 +240,31 @@
|
||||
custom_materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600)
|
||||
escape_time = 200 //equal to the time of a bluespace bodybag
|
||||
alternate_escape_time = 100
|
||||
|
||||
///gas supply for simplemobs so they don't die
|
||||
var/datum/gas_mixture/occupant_gas_supply
|
||||
///level until the reagent gets INGEST ed instead of TOUCH
|
||||
var/sipping_level = 150
|
||||
///prob50 level of sipping
|
||||
var/sipping_probably = 99
|
||||
///chem transfer rate / second
|
||||
var/transfer_rate = 5
|
||||
|
||||
/obj/item/pet_carrier/bluespace/Initialize()
|
||||
. = ..()
|
||||
create_reagents(300, OPENCONTAINER, DEFAULT_REAGENTS_VALUE) //equivalent of bsbeakers
|
||||
|
||||
/obj/item/pet_carrier/bluespace/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/pet_carrier/bluespace/attack_self(mob/living/user)
|
||||
..()
|
||||
if(reagents)
|
||||
if(open)
|
||||
reagents.reagents_holder_flags = OPENCONTAINER
|
||||
else
|
||||
reagents.reagents_holder_flags = NONE
|
||||
|
||||
/obj/item/pet_carrier/bluespace/update_icon_state()
|
||||
if(open)
|
||||
@@ -248,11 +272,28 @@
|
||||
else
|
||||
icon_state = "bluespace_jar"
|
||||
|
||||
/obj/item/pet_carrier/bluespace/throw_impact()
|
||||
/obj/item/pet_carrier/bluespace/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum)
|
||||
. = ..()
|
||||
//delete the item upon impact, releasing the creature inside (this is handled by its deletion)
|
||||
if(occupants.len)
|
||||
loc.visible_message("<span class='warning'>The bluespace jar smashes, releasing [occupants[1]]!</span>")
|
||||
|
||||
if(reagents?.total_volume && ismob(hit_atom) && hit_atom.reagents)
|
||||
reagents.total_volume *= rand(5,10) * 0.1 //Not all of it makes contact with the target
|
||||
var/mob/M = hit_atom
|
||||
var/R = reagents.log_list()
|
||||
hit_atom.visible_message("<span class='danger'>[M] has been splashed with something!</span>", \
|
||||
"<span class='userdanger'>[M] has been splashed with something!</span>")
|
||||
var/turf/TT = get_turf(hit_atom)
|
||||
var/throwerstring
|
||||
if(thrownby)
|
||||
log_combat(thrownby, M, "splashed", R)
|
||||
var/turf/AT = get_turf(thrownby)
|
||||
throwerstring = " THROWN BY [key_name(thrownby)] at [AT] (AREACOORD(AT)]"
|
||||
log_reagent("SPLASH: [src] mob throw_impact() onto [key_name(hit_atom)] at [TT] ([AREACOORD(TT)])[throwerstring] - [R]")
|
||||
reagents.reaction(hit_atom, TOUCH)
|
||||
reagents.clear_reagents()
|
||||
|
||||
playsound(src, "shatter", 70, 1)
|
||||
qdel(src)
|
||||
|
||||
@@ -260,21 +301,24 @@
|
||||
. = ..()
|
||||
if(!occupant_gas_supply)
|
||||
occupant_gas_supply = new
|
||||
|
||||
if(isanimal(occupant))
|
||||
var/mob/living/simple_animal/animal = occupant
|
||||
occupant_gas_supply[/datum/gas/oxygen] = 0.0064 //make sure it has some gas in so it isn't depressurized
|
||||
occupant_gas_supply.set_temperature(animal.minbodytemp) //simple animals only care about temperature/pressure when their turf isnt a location
|
||||
else
|
||||
if(ishuman(occupant)) //humans require resistance to cold/heat and living in no air while inside, and lose this when outside
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist")
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist")
|
||||
ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath")
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure")
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure")
|
||||
|
||||
if(ishuman(occupant)) //humans require resistance to cold/heat and living in no air while inside, and lose this when outside
|
||||
START_PROCESSING(SSobj, src)
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist")
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist")
|
||||
ADD_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath")
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTHIGHPRESSURE, "bluespace_container_resist_high_pressure")
|
||||
ADD_TRAIT(occupant, TRAIT_RESISTLOWPRESSURE, "bluespace_container_resist_low_pressure")
|
||||
|
||||
/obj/item/pet_carrier/bluespace/remove_occupant(mob/living/occupant)
|
||||
. = ..()
|
||||
if(ishuman(occupant))
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
REMOVE_TRAIT(occupant, TRAIT_RESISTCOLD, "bluespace_container_cold_resist")
|
||||
REMOVE_TRAIT(occupant, TRAIT_RESISTHEAT, "bluespace_container_heat_resist")
|
||||
REMOVE_TRAIT(occupant, TRAIT_NOBREATH, "bluespace_container_no_breath")
|
||||
@@ -287,6 +331,18 @@
|
||||
occupant_gas_supply = new
|
||||
return occupant_gas_supply
|
||||
|
||||
/obj/item/pet_carrier/bluespace/process()
|
||||
if(!reagents)
|
||||
return
|
||||
for(var/mob/living/L in occupants)
|
||||
if(!ishuman(L))
|
||||
continue
|
||||
if((reagents.total_volume >= sipping_level) || ((reagents.total_volume >= sipping_probably) && prob(50))) //sipp
|
||||
reagents.reaction(L, INGEST) //consume
|
||||
reagents.trans_to(L, transfer_rate)
|
||||
else
|
||||
reagents.reaction(L, TOUCH, show_message = FALSE)
|
||||
|
||||
/obj/item/pet_carrier/bluespace/load_occupant(mob/living/user, mob/living/target)
|
||||
if(..())
|
||||
name = "[initial(name)] ([target])"
|
||||
|
||||
@@ -688,6 +688,18 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths())
|
||||
icon_state = "scrubpuppy"
|
||||
item_state = "scrubpuppy"
|
||||
|
||||
/obj/item/toy/plush/borgplushie/meddrake
|
||||
name = "MediDrake Plushie"
|
||||
desc = "An adorable stuffed toy of a Medidrake."
|
||||
icon_state = "meddrake"
|
||||
item_state = "meddrake"
|
||||
|
||||
/obj/item/toy/plush/borgplushie/secdrake
|
||||
name = "SecDrake Plushie"
|
||||
desc = "An adorable stuffed toy of a Secdrake."
|
||||
icon_state = "secdrake"
|
||||
item_state = "secdrake"
|
||||
|
||||
/obj/item/toy/plush/aiplush
|
||||
name = "AI plushie"
|
||||
desc = "A little stuffed toy AI core... it appears to be malfunctioning."
|
||||
|
||||
@@ -239,6 +239,9 @@
|
||||
/obj/item/stack/medical/suture/one
|
||||
amount = 1
|
||||
|
||||
/obj/item/stack/medical/suture/five
|
||||
amount = 5
|
||||
|
||||
/obj/item/stack/medical/suture/medicated
|
||||
name = "medicated suture"
|
||||
icon_state = "suture_purp"
|
||||
@@ -319,6 +322,9 @@
|
||||
/obj/item/stack/medical/mesh/one
|
||||
amount = 1
|
||||
|
||||
/obj/item/stack/medical/mesh/five
|
||||
amount = 5
|
||||
|
||||
/obj/item/stack/medical/mesh/advanced
|
||||
name = "advanced regenerative mesh"
|
||||
desc = "An advanced mesh made with aloe extracts and sterilizing chemicals, used to treat burns."
|
||||
|
||||
@@ -672,6 +672,10 @@ GLOBAL_LIST_INIT(brass_recipes, list ( \
|
||||
GLOBAL_LIST_INIT(bronze_recipes, list ( \
|
||||
new/datum/stack_recipe("wall gear", /obj/structure/girder/bronze, 2, time = 20, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
null,
|
||||
new/datum/stack_recipe("directional bronze window", /obj/structure/window/bronze/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \
|
||||
new/datum/stack_recipe("fulltile bronze window", /obj/structure/window/bronze/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \
|
||||
new/datum/stack_recipe("pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("bronze pinion airlock assembly", /obj/structure/door_assembly/door_assembly_bronze/seethru, 4, time = 50, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("bronze hat", /obj/item/clothing/head/bronze), \
|
||||
new/datum/stack_recipe("bronze suit", /obj/item/clothing/suit/bronze), \
|
||||
new/datum/stack_recipe("bronze boots", /obj/item/clothing/shoes/bronze), \
|
||||
@@ -679,9 +683,10 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
|
||||
new/datum/stack_recipe("bronze chair", /obj/structure/chair/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("bronze bar stool", /obj/structure/chair/stool/bar/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("bronze stool", /obj/structure/chair/stool/bronze, 1, time = 0, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new /datum/stack_recipe("bronze floor tiles", /obj/item/stack/tile/bronze, 1, 4, 20), \
|
||||
))
|
||||
|
||||
/obj/item/stack/tile/bronze
|
||||
/obj/item/stack/sheet/bronze
|
||||
name = "brass"
|
||||
desc = "On closer inspection, what appears to be wholly-unsuitable-for-building brass is actually more structurally stable bronze."
|
||||
singular_name = "bronze sheet"
|
||||
@@ -690,27 +695,21 @@ GLOBAL_LIST_INIT(bronze_recipes, list ( \
|
||||
icon = 'icons/obj/stack_objects.dmi'
|
||||
custom_materials = list(/datum/material/bronze = MINERAL_MATERIAL_AMOUNT)
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
throwforce = 10
|
||||
max_amount = 50
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
turf_type = /turf/open/floor/bronze
|
||||
novariants = FALSE
|
||||
grind_results = list(/datum/reagent/iron = 5, /datum/reagent/copper = 3) //we have no "tin" reagent so this is the closest thing
|
||||
merge_type = /obj/item/stack/tile/bronze
|
||||
merge_type = /obj/item/stack/sheet/bronze
|
||||
tableVariant = /obj/structure/table/bronze
|
||||
material_type = /datum/material/bronze
|
||||
|
||||
/obj/item/stack/tile/bronze/attack_self(mob/living/user)
|
||||
/obj/item/stack/sheet/bronze/attack_self(mob/living/user)
|
||||
if(is_servant_of_ratvar(user)) //still lets them build with it, just gives a message
|
||||
to_chat(user, "<span class='danger'>Wha... what is this cheap imitation crap? This isn't brass at all!</span>")
|
||||
..()
|
||||
|
||||
/obj/item/stack/tile/bronze/get_main_recipes()
|
||||
/obj/item/stack/sheet/bronze/get_main_recipes()
|
||||
. = ..()
|
||||
. += GLOB.bronze_recipes
|
||||
|
||||
/obj/item/stack/tile/bronze/thirty
|
||||
/obj/item/stack/sheet/bronze/thirty
|
||||
amount = 30
|
||||
|
||||
/*
|
||||
|
||||
@@ -513,3 +513,12 @@
|
||||
icon_state = "material_tile"
|
||||
turf_type = /turf/open/floor/material
|
||||
material_flags = MATERIAL_ADD_PREFIX | MATERIAL_COLOR | MATERIAL_AFFECT_STATISTICS
|
||||
|
||||
/obj/item/stack/tile/bronze
|
||||
name = "bronze tile"
|
||||
singular_name = "bronze floor tile"
|
||||
desc = "A tile made out of bronze. Looks like clockwork."
|
||||
icon_state = "material_tile"
|
||||
color = "#92661A"
|
||||
turf_type = /turf/open/floor/bronze
|
||||
custom_materials = list(/datum/material/bronze = 250)
|
||||
|
||||
@@ -47,41 +47,58 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
|
||||
user.visible_message("<span class='suicide'>[user] is offering [user.p_them()]self to [deity_name]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/obj/item/storage/book/bible/attack_self(mob/living/carbon/human/H)
|
||||
if(!istype(H))
|
||||
/obj/item/storage/book/bible/attack_self(mob/living/carbon/human/user)
|
||||
if(!istype(user))
|
||||
return
|
||||
// If H is the Chaplain, we can set the icon_state of the bible (but only once!)
|
||||
if(!GLOB.bible_icon_state && H.job == "Chaplain")
|
||||
var/dat = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><title>Pick Bible Style</title></head><body><center><h2>Pick a bible style</h2></center><table>"
|
||||
for(var/i in 1 to GLOB.biblestates.len)
|
||||
var/icon/bibleicon = icon('icons/obj/storage.dmi', GLOB.biblestates[i])
|
||||
var/nicename = GLOB.biblenames[i]
|
||||
H << browse_rsc(bibleicon, nicename)
|
||||
dat += {"<tr><td><img src="[nicename]"></td><td><a href="?src=[REF(src)];seticon=[i]">[nicename]</a></td></tr>"}
|
||||
dat += "</table></body></html>"
|
||||
H << browse(dat, "window=editicon;can_close=0;can_minimize=0;size=250x650")
|
||||
if(GLOB.bible_icon_state) // if there is already a bible icon return FALSE
|
||||
return FALSE
|
||||
if(user.job != "Chaplain") // if the user is not the chaplain, return FALSE
|
||||
return FALSE
|
||||
|
||||
/obj/item/storage/book/bible/Topic(href, href_list)
|
||||
if(!usr.canUseTopic(src))
|
||||
return
|
||||
if(href_list["seticon"] && GLOB && !GLOB.bible_icon_state)
|
||||
var/iconi = text2num(href_list["seticon"])
|
||||
var/biblename = GLOB.biblenames[iconi]
|
||||
var/obj/item/storage/book/bible/B = locate(href_list["src"])
|
||||
B.icon_state = GLOB.biblestates[iconi]
|
||||
B.item_state = GLOB.bibleitemstates[iconi]
|
||||
var/list/skins = list()
|
||||
for(var/i in 1 to GLOB.biblestates.len)
|
||||
var/image/bible_image = image(icon = 'icons/obj/storage.dmi', icon_state = GLOB.biblestates[i])
|
||||
skins += list("[GLOB.biblenames[i]]" = bible_image)
|
||||
|
||||
if(B.icon_state == "honk1" || B.icon_state == "honk2")
|
||||
var/mob/living/carbon/human/H = usr
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.dna.add_mutation(SMILE)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), SLOT_WEAR_MASK)
|
||||
var/choice = show_radial_menu(user, src, skins, custom_check = CALLBACK(src, .proc/check_menu, user), radius = 40, require_near = TRUE)
|
||||
if(!choice)
|
||||
return FALSE
|
||||
var/bible_index = GLOB.biblenames.Find(choice)
|
||||
if(!bible_index)
|
||||
return FALSE
|
||||
icon_state = GLOB.biblestates[bible_index]
|
||||
item_state = GLOB.bibleitemstates[bible_index]
|
||||
|
||||
GLOB.bible_icon_state = B.icon_state
|
||||
GLOB.bible_item_state = B.item_state
|
||||
if(icon_state == "honk1" || icon_state == "honk2")
|
||||
var/mob/living/carbon/human/H = usr
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
H.dna.add_mutation(SMILE)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/clown_hat(H), SLOT_WEAR_MASK)
|
||||
|
||||
SSblackbox.record_feedback("text", "religion_book", 1, "[biblename]")
|
||||
usr << browse(null, "window=editicon")
|
||||
GLOB.bible_icon_state = icon_state
|
||||
GLOB.bibleitemstates = item_state
|
||||
SSblackbox.record_feedback("text", "religion_book", 1, "[choice]")
|
||||
|
||||
/**
|
||||
* Checks if we are allowed to interact with the radial
|
||||
*
|
||||
* Arguements: user The mob interacting with the menu
|
||||
*/
|
||||
|
||||
/obj/item/storage/book/bible/proc/check_menu(mob/living/carbon/human/user)
|
||||
if(GLOB.bible_icon_state)
|
||||
return FALSE
|
||||
if(!istype(user))
|
||||
return FALSE
|
||||
if(!user.is_holding(src))
|
||||
return FALSE
|
||||
if(!user.can_read(src))
|
||||
return FALSE
|
||||
if(user.incapacitated())
|
||||
return FALSE
|
||||
if(user.job != "Chaplain")
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/storage/book/bible/proc/bless(mob/living/carbon/human/H, mob/living/user)
|
||||
for(var/X in H.bodyparts)
|
||||
|
||||
@@ -245,19 +245,20 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons)
|
||||
new /obj/item/stack/cable_coil/white(src)
|
||||
|
||||
/obj/item/storage/toolbox/ammo
|
||||
name = "ammo box"
|
||||
desc = "It contains a few clips."
|
||||
name = "ammunition case (7.62mm stripper clips)"
|
||||
desc = "It contains a few 7.62 stripper clips."
|
||||
icon_state = "ammobox"
|
||||
item_state = "ammobox"
|
||||
var/ammotype = /obj/item/ammo_box/a762 // make sure this is a typepath thanks
|
||||
|
||||
/obj/item/storage/toolbox/ammo/PopulateContents()
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
new /obj/item/ammo_box/a762(src)
|
||||
for (var/i = 0, i < 7, i++)
|
||||
new ammotype(src)
|
||||
|
||||
/obj/item/storage/toolbox/ammo/surplus
|
||||
name = "ammunition case (10mm rifle magazines)"
|
||||
desc = "It contains a few 10mm rifle magazines."
|
||||
ammotype = /obj/item/ammo_box/magazine/m10mm/rifle
|
||||
|
||||
/obj/item/storage/toolbox/infiltrator
|
||||
name = "insidious case"
|
||||
|
||||
@@ -122,11 +122,14 @@
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user)
|
||||
if(is_parent_of_portal(target))
|
||||
/obj/item/hand_tele/proc/try_dispel_portal(atom/target, mob/user, delay = 30)
|
||||
var/datum/beam/B = user.Beam(target, icon_state = "rped_upgrade", maxdistance = 50)
|
||||
if(is_parent_of_portal(target) && (!delay || do_after(user, delay, target = target)))
|
||||
qdel(target)
|
||||
to_chat(user, "<span class='notice'>You dispel [target] with \the [src]!</span>")
|
||||
qdel(B)
|
||||
return TRUE
|
||||
qdel(B)
|
||||
return FALSE
|
||||
|
||||
/obj/item/hand_tele/afterattack(atom/target, mob/user)
|
||||
|
||||
@@ -252,6 +252,8 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
/obj/item/katana/timestop
|
||||
name = "temporal katana"
|
||||
desc = "Delicately balanced, this finely-crafted blade hums with barely-restrained potential."
|
||||
block_chance = 0 // oops
|
||||
force = 27.5 // oops
|
||||
item_flags = ITEM_CAN_PARRY
|
||||
block_parry_data = /datum/block_parry_data/bokken/quick_parry/proj
|
||||
|
||||
@@ -259,7 +261,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
if(ishuman(owner))
|
||||
var/mob/living/carbon/human/flynn = owner
|
||||
flynn.emote("smirk")
|
||||
new /obj/effect/timestop(get_turf(owner), 2, 50, list(owner))
|
||||
new /obj/effect/timestop/magic(get_turf(owner), 1, 50, list(owner)) // null roddies counter
|
||||
|
||||
/obj/item/melee/bokken // parrying stick
|
||||
name = "bokken"
|
||||
@@ -295,7 +297,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
parry_time_perfect = 1.5
|
||||
parry_time_perfect_leeway = 1
|
||||
parry_imperfect_falloff_percent = 7.5
|
||||
parry_efficiency_to_counterattack = 100
|
||||
parry_efficiency_to_counterattack = 120
|
||||
parry_efficiency_considered_successful = 65 // VERY generous
|
||||
parry_efficiency_perfect = 120
|
||||
parry_efficiency_perfect_override = list(
|
||||
@@ -304,13 +306,13 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
parry_failed_stagger_duration = 3 SECONDS
|
||||
parry_data = list(
|
||||
PARRY_COUNTERATTACK_MELEE_ATTACK_CHAIN = 2.5, // 7*2.5 = 17.5, 8*2.5 = 20, 9*2.5 = 22.5, 10*2.5 = 25
|
||||
)
|
||||
)
|
||||
|
||||
/datum/block_parry_data/bokken/quick_parry // emphasizing REALLY SHORT PARRIES
|
||||
parry_stamina_cost = 6 // still more costly than most parries, but less than a full bokken parry
|
||||
parry_time_active = 5 // REALLY small parry window
|
||||
parry_time_perfect = 2.5 // however...
|
||||
parry_time_perfect_leeway = 2.5 // the entire time, the parry is perfect
|
||||
parry_time_perfect_leeway = 2 // the entire time, the parry is perfect
|
||||
parry_failed_stagger_duration = 1 SECONDS
|
||||
parry_failed_clickcd_duration = 1 SECONDS // more forgiving punishments for missed parries
|
||||
// still, don't fucking miss your parries or you're down stamina and staggered to shit
|
||||
|
||||
@@ -9,8 +9,10 @@
|
||||
var/mob/living/structureclimber
|
||||
var/broken = 0 //similar to machinery's stat BROKEN
|
||||
layer = BELOW_OBJ_LAYER
|
||||
flags_ricochet = RICOCHET_HARD
|
||||
ricochet_chance_mod = 0.5
|
||||
//ricochets on structures commented out for now because there's a lot of structures that /shouldnt/ be ricocheting and those need to be reviewed first
|
||||
//flags_1 = DEFAULT_RICOCHET_1
|
||||
//flags_ricochet = RICOCHET_HARD
|
||||
//ricochet_chance_mod = 0.5
|
||||
|
||||
/obj/structure/Initialize()
|
||||
if (!armor)
|
||||
@@ -110,3 +112,6 @@
|
||||
if(0 to 25)
|
||||
if(!broken)
|
||||
return "<span class='warning'>It's falling apart!</span>"
|
||||
|
||||
/obj/structure/rust_heretic_act()
|
||||
take_damage(500, BRUTE, "melee", 1)
|
||||
|
||||
@@ -487,7 +487,7 @@
|
||||
desc = "A bronze bar stool with red silk for a pillow."
|
||||
icon_state = "barbrass"
|
||||
item_chair = /obj/item/chair/stool/bar/bronze
|
||||
buildstacktype = /obj/item/stack/tile/bronze
|
||||
buildstacktype = /obj/item/stack/sheet/bronze
|
||||
buildstackamount = 1
|
||||
|
||||
/obj/structure/chair/stool/brass
|
||||
@@ -503,7 +503,7 @@
|
||||
desc = "A bronze stool with a silk top for comfort."
|
||||
icon_state = "stoolbrass"
|
||||
item_chair = /obj/item/chair/stool/bronze
|
||||
buildstacktype = /obj/item/stack/tile/bronze
|
||||
buildstacktype = /obj/item/stack/sheet/bronze
|
||||
buildstackamount = 1
|
||||
|
||||
/obj/item/chair/stool/brass
|
||||
@@ -569,7 +569,6 @@
|
||||
buildstacktype = /obj/item/stack/tile/brass
|
||||
buildstackamount = 1
|
||||
item_chair = null
|
||||
var/turns = 0
|
||||
|
||||
/obj/structure/chair/brass/ComponentInitialize()
|
||||
return //it spins with the power of ratvar, not components.
|
||||
@@ -581,16 +580,12 @@
|
||||
/obj/structure/chair/brass/process()
|
||||
setDir(turn(dir,-90))
|
||||
playsound(src, 'sound/effects/servostep.ogg', 50, FALSE)
|
||||
turns++
|
||||
if(turns >= 8)
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/obj/structure/chair/brass/ratvar_act()
|
||||
return
|
||||
|
||||
/obj/structure/chair/brass/AltClick(mob/living/user)
|
||||
. = ..()
|
||||
turns = 0
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
||||
return
|
||||
if(!(datum_flags & DF_ISPROCESSING))
|
||||
@@ -608,7 +603,7 @@
|
||||
desc = "A spinny chair made of bronze. It has little cogs for wheels!"
|
||||
anchored = FALSE
|
||||
icon_state = "brass_chair"
|
||||
buildstacktype = /obj/item/stack/tile/bronze
|
||||
buildstacktype = /obj/item/stack/sheet/bronze
|
||||
buildstackamount = 1
|
||||
item_chair = null
|
||||
|
||||
|
||||
@@ -111,6 +111,9 @@
|
||||
var/mob/living/L = user
|
||||
if(HAS_TRAIT(L, TRAIT_SKITTISH))
|
||||
. += "<span class='notice'>Ctrl-Shift-click [src] to jump inside.</span>"
|
||||
if(isobserver(user))
|
||||
. += "<span class='info'>It contains: [english_list(contents)].</span>"
|
||||
investigate_log("had its contents examined by [user] as a ghost.", INVESTIGATE_GHOST)
|
||||
|
||||
/obj/structure/closet/CanPass(atom/movable/mover, turf/target)
|
||||
if(wall_mounted)
|
||||
|
||||
@@ -240,3 +240,14 @@
|
||||
airlock_type = /obj/machinery/door/airlock/wood
|
||||
mineral = "wood"
|
||||
glass_type = /obj/machinery/door/airlock/wood/glass
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_bronze
|
||||
name = "bronze airlock assembly"
|
||||
icon = 'icons/obj/doors/airlocks/clockwork/pinion_airlock.dmi'
|
||||
base_name = "bronze airlock"
|
||||
airlock_type = /obj/machinery/door/airlock/bronze
|
||||
noglass = TRUE
|
||||
material_type = /obj/item/stack/tile/bronze
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_bronze/seethru
|
||||
airlock_type = /obj/machinery/door/airlock/bronze/seethru
|
||||
|
||||
@@ -442,19 +442,19 @@
|
||||
to_chat(user, "<span class='notice'>You start slicing apart [src]...</span>")
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You slice apart [src].</span>")
|
||||
var/obj/item/stack/tile/bronze/B = new(drop_location(), 2)
|
||||
var/obj/item/stack/sheet/bronze/B = new(drop_location(), 2)
|
||||
transfer_fingerprints_to(B)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/pickaxe/drill/jackhammer))
|
||||
to_chat(user, "<span class='notice'>Your jackhammer smashes through the girder!</span>")
|
||||
var/obj/item/stack/tile/bronze/B = new(drop_location(), 2)
|
||||
var/obj/item/stack/sheet/bronze/B = new(drop_location(), 2)
|
||||
transfer_fingerprints_to(B)
|
||||
W.play_tool_sound(src)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/stack/tile/bronze))
|
||||
var/obj/item/stack/tile/bronze/B = W
|
||||
else if(istype(W, /obj/item/stack/sheet/bronze))
|
||||
var/obj/item/stack/sheet/bronze/B = W
|
||||
if(B.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two bronze sheets to build a bronze wall!</span>")
|
||||
return 0
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#define STAIR_TERMINATOR_YES 2
|
||||
|
||||
// dir determines the direction of travel to go upwards (due to lack of sprites, currently only 1 and 2 make sense)
|
||||
// stairs require /turf/open/openspace as the tile above them to work
|
||||
// stairs require /turf/open/transparent/openspace as the tile above them to work
|
||||
// multiple stair objects can be chained together; the Z level transition will happen on the final stair object in the chain
|
||||
|
||||
/obj/structure/stairs
|
||||
@@ -12,7 +12,7 @@
|
||||
icon_state = "stairs"
|
||||
anchored = TRUE
|
||||
|
||||
var/force_open_above = FALSE // replaces the turf above this stair obj with /turf/open/openspace
|
||||
var/force_open_above = FALSE // replaces the turf above this stair obj with /turf/open/transparent/openspace
|
||||
var/terminator_mode = STAIR_TERMINATOR_AUTOMATIC
|
||||
var/turf/listeningTo
|
||||
|
||||
@@ -95,20 +95,20 @@
|
||||
/obj/structure/stairs/proc/build_signal_listener()
|
||||
if(listeningTo)
|
||||
UnregisterSignal(listeningTo, COMSIG_TURF_MULTIZ_NEW)
|
||||
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
var/turf/open/transparent/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
RegisterSignal(T, COMSIG_TURF_MULTIZ_NEW, .proc/on_multiz_new)
|
||||
listeningTo = T
|
||||
|
||||
/obj/structure/stairs/proc/force_open_above()
|
||||
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
var/turf/open/transparent/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
if(T && !istype(T))
|
||||
T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR)
|
||||
T.ChangeTurf(/turf/open/transparent/openspace, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/obj/structure/stairs/proc/on_multiz_new(turf/source, dir)
|
||||
if(dir == UP)
|
||||
var/turf/open/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
var/turf/open/transparent/openspace/T = get_step_multiz(get_turf(src), UP)
|
||||
if(T && !istype(T))
|
||||
T.ChangeTurf(/turf/open/openspace, flags = CHANGETURF_INHERIT_AIR)
|
||||
T.ChangeTurf(/turf/open/transparent/openspace, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
/obj/structure/stairs/intercept_zImpact(atom/movable/AM, levels = 1)
|
||||
. = ..()
|
||||
|
||||
@@ -597,7 +597,7 @@
|
||||
icon = 'icons/obj/smooth_structures/brass_table.dmi'
|
||||
icon_state = "brass_table"
|
||||
resistance_flags = FIRE_PROOF | ACID_PROOF
|
||||
buildstack = /obj/item/stack/tile/bronze
|
||||
buildstack = /obj/item/stack/sheet/bronze
|
||||
canSmoothWith = list(/obj/structure/table/reinforced/brass, /obj/structure/table/bronze)
|
||||
|
||||
/obj/structure/table/bronze/tablelimbsmash(mob/living/user, mob/living/pushed_mob)
|
||||
|
||||
@@ -17,7 +17,6 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
layer = ABOVE_OBJ_LAYER //Just above doors
|
||||
pressure_resistance = 4*ONE_ATMOSPHERE
|
||||
anchored = TRUE //initially is 0 for tile smoothing
|
||||
flags_1 = ON_BORDER_1
|
||||
max_integrity = 25
|
||||
var/ini_dir = null
|
||||
var/state = WINDOW_OUT_OF_FRAME
|
||||
@@ -38,7 +37,8 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
var/hitsound = 'sound/effects/Glasshit.ogg'
|
||||
rad_insulation = RAD_VERY_LIGHT_INSULATION
|
||||
rad_flags = RAD_PROTECT_CONTENTS
|
||||
flags_ricochet = RICOCHET_HARD
|
||||
flags_1 = ON_BORDER_1|DEFAULT_RICOCHET_1
|
||||
flags_ricochet = RICOCHET_HARD
|
||||
ricochet_chance_mod = 0.4
|
||||
attack_hand_speed = CLICK_CD_MELEE
|
||||
attack_hand_is_action = TRUE
|
||||
@@ -875,3 +875,26 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
|
||||
return
|
||||
..()
|
||||
update_icon()
|
||||
|
||||
/obj/structure/window/bronze
|
||||
name = "brass window"
|
||||
desc = "A paper-thin pane of translucent yet reinforced brass. Nevermind, this is just weak bronze!"
|
||||
icon = 'icons/obj/smooth_structures/clockwork_window.dmi'
|
||||
icon_state = "clockwork_window_single"
|
||||
glass_type = /obj/item/stack/tile/bronze
|
||||
|
||||
/obj/structure/window/bronze/unanchored
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/window/bronze/fulltile
|
||||
icon_state = "clockwork_window"
|
||||
canSmoothWith = null
|
||||
smooth = SMOOTH_TRUE
|
||||
fulltile = TRUE
|
||||
flags_1 = PREVENT_CLICK_UNDER_1
|
||||
dir = FULLTILE_WINDOW_DIR
|
||||
max_integrity = 50
|
||||
glass_amount = 2
|
||||
|
||||
/obj/structure/window/bronze/fulltile/unanchored
|
||||
anchored = FALSE
|
||||
|
||||
@@ -226,5 +226,9 @@
|
||||
soundin = pick('sound/effects/clangsmall1.ogg', 'sound/effects/clangsmall2.ogg')
|
||||
if("slosh")
|
||||
soundin = pick('sound/effects/slosh1.ogg', 'sound/effects/slosh2.ogg')
|
||||
if("smcalm")
|
||||
soundin = pick('sound/machines/sm/accent/normal/1.ogg', 'sound/machines/sm/accent/normal/2.ogg', 'sound/machines/sm/accent/normal/3.ogg', 'sound/machines/sm/accent/normal/4.ogg', 'sound/machines/sm/accent/normal/5.ogg', 'sound/machines/sm/accent/normal/6.ogg', 'sound/machines/sm/accent/normal/7.ogg', 'sound/machines/sm/accent/normal/8.ogg', 'sound/machines/sm/accent/normal/9.ogg', 'sound/machines/sm/accent/normal/10.ogg', 'sound/machines/sm/accent/normal/11.ogg', 'sound/machines/sm/accent/normal/12.ogg', 'sound/machines/sm/accent/normal/13.ogg', 'sound/machines/sm/accent/normal/14.ogg', 'sound/machines/sm/accent/normal/15.ogg', 'sound/machines/sm/accent/normal/16.ogg', 'sound/machines/sm/accent/normal/17.ogg', 'sound/machines/sm/accent/normal/18.ogg', 'sound/machines/sm/accent/normal/19.ogg', 'sound/machines/sm/accent/normal/20.ogg', 'sound/machines/sm/accent/normal/21.ogg', 'sound/machines/sm/accent/normal/22.ogg', 'sound/machines/sm/accent/normal/23.ogg', 'sound/machines/sm/accent/normal/24.ogg', 'sound/machines/sm/accent/normal/25.ogg', 'sound/machines/sm/accent/normal/26.ogg', 'sound/machines/sm/accent/normal/27.ogg', 'sound/machines/sm/accent/normal/28.ogg', 'sound/machines/sm/accent/normal/29.ogg', 'sound/machines/sm/accent/normal/30.ogg', 'sound/machines/sm/accent/normal/31.ogg', 'sound/machines/sm/accent/normal/32.ogg', 'sound/machines/sm/accent/normal/33.ogg')
|
||||
if("smdelam")
|
||||
soundin = pick('sound/machines/sm/accent/delam/1.ogg', 'sound/machines/sm/accent/normal/2.ogg', 'sound/machines/sm/accent/normal/3.ogg', 'sound/machines/sm/accent/normal/4.ogg', 'sound/machines/sm/accent/normal/5.ogg', 'sound/machines/sm/accent/normal/6.ogg', 'sound/machines/sm/accent/normal/7.ogg', 'sound/machines/sm/accent/normal/8.ogg', 'sound/machines/sm/accent/normal/9.ogg', 'sound/machines/sm/accent/normal/10.ogg', 'sound/machines/sm/accent/normal/11.ogg', 'sound/machines/sm/accent/normal/12.ogg', 'sound/machines/sm/accent/normal/13.ogg', 'sound/machines/sm/accent/normal/14.ogg', 'sound/machines/sm/accent/normal/15.ogg', 'sound/machines/sm/accent/normal/16.ogg', 'sound/machines/sm/accent/normal/17.ogg', 'sound/machines/sm/accent/normal/18.ogg', 'sound/machines/sm/accent/normal/19.ogg', 'sound/machines/sm/accent/normal/20.ogg', 'sound/machines/sm/accent/normal/21.ogg', 'sound/machines/sm/accent/normal/22.ogg', 'sound/machines/sm/accent/normal/23.ogg', 'sound/machines/sm/accent/normal/24.ogg', 'sound/machines/sm/accent/normal/25.ogg', 'sound/machines/sm/accent/normal/26.ogg', 'sound/machines/sm/accent/normal/27.ogg', 'sound/machines/sm/accent/normal/28.ogg', 'sound/machines/sm/accent/normal/29.ogg', 'sound/machines/sm/accent/normal/30.ogg', 'sound/machines/sm/accent/normal/31.ogg', 'sound/machines/sm/accent/normal/32.ogg', 'sound/machines/sm/accent/normal/33.ogg')
|
||||
//END OF CIT CHANGES
|
||||
return soundin
|
||||
|
||||
@@ -29,6 +29,9 @@
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
explosion_block = 50
|
||||
|
||||
/turf/closed/indestructible/rust_heretic_act()
|
||||
return
|
||||
|
||||
/turf/closed/indestructible/TerraformTurf(path, new_baseturf, flags, defer_change = FALSE, ignore_air = FALSE)
|
||||
return
|
||||
|
||||
@@ -198,13 +201,13 @@
|
||||
|
||||
/turf/closed/indestructible/rock/glacierrock
|
||||
name = "unaturally hard ice wall"
|
||||
desc = "Ice, hardened over thousands of years, you're not breaking through this."
|
||||
desc = "Ice, hardened over thousands of years, you're not breaking through this."
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
icon_state = "snow_rock"
|
||||
|
||||
/turf/closed/indestructible/rock/glacierrock/blue
|
||||
name = "blue ice wall"
|
||||
desc = "The incredible compressive forces that formed this sturdy ice wall gave it a blue color."
|
||||
desc = "The incredible compressive forces that formed this sturdy ice wall gave it a blue color."
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
icon_state = "ice"
|
||||
canSmoothWith = list(/turf/closed/indestructible/rock/glacierrock/blue)
|
||||
|
||||
@@ -11,66 +11,47 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
layer = SPLASHSCREEN_LAYER
|
||||
|
||||
/turf/open/openspace
|
||||
/turf/open/transparent/openspace
|
||||
name = "open space"
|
||||
desc = "Watch your step!"
|
||||
icon_state = "transparent"
|
||||
baseturfs = /turf/open/openspace
|
||||
baseturfs = /turf/open/transparent/openspace
|
||||
CanAtmosPassVertical = ATMOS_PASS_YES
|
||||
//mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
var/can_cover_up = TRUE
|
||||
var/can_build_on = TRUE
|
||||
|
||||
/turf/open/openspace/debug/update_multiz()
|
||||
/turf/open/transparent/openspace/airless
|
||||
initial_gas_mix = AIRLESS_ATMOS
|
||||
|
||||
/turf/open/transparent/openspace/debug/update_multiz()
|
||||
..()
|
||||
return TRUE
|
||||
|
||||
/turf/open/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
|
||||
///No bottom level for openspace.
|
||||
/turf/open/transparent/openspace/show_bottom_level()
|
||||
return FALSE
|
||||
|
||||
/turf/open/transparent/openspace/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
|
||||
. = ..()
|
||||
plane = OPENSPACE_PLANE
|
||||
layer = OPENSPACE_LAYER
|
||||
|
||||
vis_contents += GLOB.openspace_backdrop_one_for_all //Special grey square for projecting backdrop darkness filter on it.
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/turf/open/openspace/LateInitialize()
|
||||
update_multiz(TRUE, TRUE)
|
||||
/turf/open/transparent/openspace/can_have_cabling()
|
||||
if(locate(/obj/structure/lattice/catwalk, src))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/turf/open/openspace/Destroy()
|
||||
vis_contents.len = 0
|
||||
return ..()
|
||||
|
||||
/turf/open/openspace/update_multiz(prune_on_fail = FALSE, init = FALSE)
|
||||
. = ..()
|
||||
var/turf/T = below()
|
||||
if(!T)
|
||||
vis_contents.len = 0
|
||||
if(prune_on_fail)
|
||||
ChangeTurf(/turf/open/floor/plating)
|
||||
return FALSE
|
||||
if(init)
|
||||
vis_contents += T
|
||||
/turf/open/transparent/openspace/zAirIn()
|
||||
return TRUE
|
||||
|
||||
/turf/open/openspace/multiz_turf_del(turf/T, dir)
|
||||
if(dir != DOWN)
|
||||
return
|
||||
update_multiz()
|
||||
|
||||
/turf/open/openspace/multiz_turf_new(turf/T, dir)
|
||||
if(dir != DOWN)
|
||||
return
|
||||
update_multiz()
|
||||
|
||||
/turf/open/openspace/zAirIn()
|
||||
/turf/open/transparent/openspace/zAirOut()
|
||||
return TRUE
|
||||
|
||||
/turf/open/openspace/zAirOut()
|
||||
/turf/open/transparent/openspace/zPassIn(atom/movable/A, direction, turf/source)
|
||||
return TRUE
|
||||
|
||||
/turf/open/openspace/zPassIn(atom/movable/A, direction, turf/source)
|
||||
return TRUE
|
||||
|
||||
/turf/open/openspace/zPassOut(atom/movable/A, direction, turf/destination)
|
||||
/turf/open/transparent/openspace/zPassOut(atom/movable/A, direction, turf/destination)
|
||||
if(A.anchored)
|
||||
return FALSE
|
||||
for(var/obj/O in contents)
|
||||
@@ -78,13 +59,13 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/turf/open/openspace/proc/CanCoverUp()
|
||||
/turf/open/transparent/openspace/proc/CanCoverUp()
|
||||
return can_cover_up
|
||||
|
||||
/turf/open/openspace/proc/CanBuildHere()
|
||||
/turf/open/transparent/openspace/proc/CanBuildHere()
|
||||
return can_build_on
|
||||
|
||||
/turf/open/openspace/attackby(obj/item/C, mob/user, params)
|
||||
/turf/open/transparent/openspace/attackby(obj/item/C, mob/user, params)
|
||||
..()
|
||||
if(!CanBuildHere())
|
||||
return
|
||||
@@ -98,14 +79,14 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
if(L)
|
||||
if(R.use(1))
|
||||
to_chat(user, "<span class='notice'>You construct a catwalk.</span>")
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
|
||||
new/obj/structure/lattice/catwalk(src)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need two rods to build a catwalk!</span>")
|
||||
return
|
||||
if(R.use(1))
|
||||
to_chat(user, "<span class='notice'>You construct a lattice.</span>")
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
|
||||
ReplaceWithLattice()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one rod to build a lattice.</span>")
|
||||
@@ -118,7 +99,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
var/obj/item/stack/tile/plasteel/S = C
|
||||
if(S.use(1))
|
||||
qdel(L)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
else
|
||||
@@ -126,7 +107,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The plating is going to need some support! Place metal rods first.</span>")
|
||||
|
||||
/turf/open/openspace/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
/turf/open/transparent/openspace/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
if(!CanBuildHere())
|
||||
return FALSE
|
||||
|
||||
@@ -139,7 +120,7 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
return list("mode" = RCD_FLOORWALL, "delay" = 0, "cost" = 3)
|
||||
return FALSE
|
||||
|
||||
/turf/open/openspace/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
/turf/open/transparent/openspace/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
switch(passed_mode)
|
||||
if(RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
@@ -147,12 +128,12 @@ GLOBAL_DATUM_INIT(openspace_backdrop_one_for_all, /atom/movable/openspace_backdr
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/turf/open/openspace/icemoon
|
||||
/turf/open/transparent/openspace/icemoon
|
||||
name = "ice chasm"
|
||||
baseturfs = /turf/open/openspace/icemoon
|
||||
can_cover_up = FALSE
|
||||
can_build_on = FALSE
|
||||
baseturfs = /turf/open/transparent/openspace/icemoon
|
||||
can_cover_up = TRUE
|
||||
can_build_on = TRUE
|
||||
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
|
||||
|
||||
/turf/open/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target)
|
||||
/turf/open/transparent/openspace/icemoon/can_zFall(atom/movable/A, levels = 1, turf/target)
|
||||
return TRUE
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
/turf/open/transparent
|
||||
baseturfs = /turf/open/transparent/openspace
|
||||
intact = FALSE //this means wires go on top
|
||||
|
||||
/turf/open/transparent/Initialize() // handle plane and layer here so that they don't cover other obs/turfs in Dream Maker
|
||||
. = ..()
|
||||
plane = OPENSPACE_PLANE
|
||||
layer = OPENSPACE_LAYER
|
||||
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/turf/open/transparent/LateInitialize()
|
||||
update_multiz(TRUE, TRUE)
|
||||
|
||||
/turf/open/transparent/Destroy()
|
||||
vis_contents.len = 0
|
||||
return ..()
|
||||
|
||||
/turf/open/transparent/update_multiz(prune_on_fail = FALSE, init = FALSE)
|
||||
. = ..()
|
||||
var/turf/T = below()
|
||||
if(!T)
|
||||
vis_contents.len = 0
|
||||
if(!show_bottom_level() && prune_on_fail) //If we cant show whats below, and we prune on fail, change the turf to plating as a fallback
|
||||
ChangeTurf(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
return FALSE
|
||||
if(init)
|
||||
vis_contents += T
|
||||
return TRUE
|
||||
|
||||
/turf/open/transparent/multiz_turf_del(turf/T, dir)
|
||||
if(dir != DOWN)
|
||||
return
|
||||
update_multiz()
|
||||
|
||||
/turf/open/transparent/multiz_turf_new(turf/T, dir)
|
||||
if(dir != DOWN)
|
||||
return
|
||||
update_multiz()
|
||||
|
||||
///Called when there is no real turf below this turf
|
||||
/turf/open/transparent/proc/show_bottom_level()
|
||||
var/turf/path = SSmapping.level_trait(z, ZTRAIT_BASETURF) || /turf/open/space
|
||||
if(!ispath(path))
|
||||
path = text2path(path)
|
||||
if(!ispath(path))
|
||||
warning("Z-level [z] has invalid baseturf '[SSmapping.level_trait(z, ZTRAIT_BASETURF)]'")
|
||||
path = /turf/open/space
|
||||
var/mutable_appearance/underlay_appearance = mutable_appearance(initial(path.icon), initial(path.icon_state), layer = TURF_LAYER, plane = PLANE_SPACE)
|
||||
underlays += underlay_appearance
|
||||
return TRUE
|
||||
|
||||
|
||||
/turf/open/transparent/glass
|
||||
name = "Glass floor"
|
||||
desc = "Dont jump on it, or do, I'm not your mom."
|
||||
icon = 'icons/turf/floors/glass.dmi'
|
||||
icon_state = "floor_glass"
|
||||
smooth = SMOOTH_MORE
|
||||
var/floor_tile = /obj/item/stack/sheet/glass
|
||||
canSmoothWith = list(/turf/open/transparent/glass, /turf/open/transparent/glass/reinforced)
|
||||
footstep = FOOTSTEP_PLATING
|
||||
barefootstep = FOOTSTEP_HARD_BAREFOOT
|
||||
clawfootstep = FOOTSTEP_HARD_CLAW
|
||||
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
|
||||
|
||||
/turf/open/transparent/glass/Initialize()
|
||||
icon_state = "" //Prevent the normal icon from appearing behind the smooth overlays
|
||||
return ..()
|
||||
|
||||
/turf/open/transparent/glass/wrench_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You begin removing glass...</span>")
|
||||
if(I.use_tool(src, user, 30, volume=80))
|
||||
if(!istype(src, /turf/open/transparent/glass))
|
||||
return TRUE
|
||||
if(floor_tile)
|
||||
new floor_tile(src, 2)
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
|
||||
/turf/open/transparent/glass/reinforced
|
||||
name = "Reinforced glass floor"
|
||||
desc = "Do jump on it, it can take it."
|
||||
icon = 'icons/turf/floors/reinf_glass.dmi'
|
||||
floor_tile = /obj/item/stack/sheet/rglass
|
||||
|
||||
/turf/open/transparent/glass/reinforced/wrench_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You begin removing reinforced glass...</span>")
|
||||
if(I.use_tool(src, user, 30, volume=80))
|
||||
if(!istype(src, /turf/open/transparent/glass/reinforced))
|
||||
return TRUE
|
||||
if(floor_tile)
|
||||
new floor_tile(src, 2)
|
||||
ScrapeAway(flags = CHANGETURF_INHERIT_AIR)
|
||||
return TRUE
|
||||
@@ -63,6 +63,11 @@
|
||||
to_chat(user, "<span class='notice'>You forcefully pry off the planks, destroying them in the process.</span>")
|
||||
return make_plating()
|
||||
|
||||
/turf/open/floor/wood/rust_heretic_act()
|
||||
if(prob(70))
|
||||
new /obj/effect/temp_visual/glowing_rune(src)
|
||||
ChangeTurf(/turf/open/floor/plating/rust)
|
||||
|
||||
/turf/open/floor/wood/cold
|
||||
temperature = 255.37
|
||||
|
||||
|
||||
@@ -58,6 +58,12 @@
|
||||
if(exposed_temperature > 300)
|
||||
PlasmaBurn(exposed_temperature)
|
||||
|
||||
// Plasma floor that can't be removed, for disco
|
||||
|
||||
/turf/open/floor/mineral/plasma/disco
|
||||
name = "disco floor"
|
||||
/turf/open/floor/mineral/plasma/disco/crowbar_act(mob/living/user, obj/item/I)
|
||||
return
|
||||
|
||||
//GOLD
|
||||
|
||||
|
||||
@@ -259,7 +259,7 @@
|
||||
desc = "Some heavy bronze tiles."
|
||||
icon = 'icons/obj/clockwork_objects.dmi'
|
||||
icon_state = "clockwork_floor"
|
||||
floor_tile = /obj/item/stack/tile/bronze
|
||||
floor_tile = /obj/item/stack/sheet/bronze
|
||||
|
||||
/turf/open/floor/padded
|
||||
name = "padded floor"
|
||||
@@ -267,3 +267,15 @@
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "floor_padded"
|
||||
floor_tile = /obj/item/stack/tile/padded
|
||||
|
||||
/turf/open/floor/plating/rust
|
||||
name = "rusted plating"
|
||||
desc = "Corrupted steel."
|
||||
icon_state = "plating_rust"
|
||||
footstep = FOOTSTEP_RUST
|
||||
barefootstep = FOOTSTEP_RUST
|
||||
clawfootstep = FOOTSTEP_RUST
|
||||
heavyfootstep = FOOTSTEP_RUST
|
||||
|
||||
/turf/open/floor/plating/rust/rust_heretic_act()
|
||||
return
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
. = ..()
|
||||
. += "<span class='notice'>There's a <b>small crack</b> on the edge of it.</span>"
|
||||
|
||||
/turf/open/floor/plasteel/rust_heretic_act()
|
||||
if(prob(70))
|
||||
new /obj/effect/temp_visual/glowing_rune(src)
|
||||
ChangeTurf(/turf/open/floor/plating/rust)
|
||||
|
||||
/turf/open/floor/plasteel/update_icon()
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
@@ -66,6 +66,40 @@
|
||||
R.use(2)
|
||||
to_chat(user, "<span class='notice'>You reinforce the floor.</span>")
|
||||
return
|
||||
if(istype(C, /obj/item/stack/sheet/glass))
|
||||
if(broken || burnt)
|
||||
to_chat(user, "<span class='warning'>Repair the plating first!</span>")
|
||||
return
|
||||
var/obj/item/stack/sheet/glass/G = C
|
||||
if (G.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need two glass sheets to make a glass floor!</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You begin adding glass to the floor...</span>")
|
||||
if(do_after(user, 5, target = src))
|
||||
if (G.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass))
|
||||
PlaceOnTop(/turf/open/transparent/glass, flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 80, 1)
|
||||
G.use(2)
|
||||
to_chat(user, "<span class='notice'>You add glass to the floor.</span>")
|
||||
return
|
||||
if(istype(C, /obj/item/stack/sheet/rglass))
|
||||
if(broken || burnt)
|
||||
to_chat(user, "<span class='warning'>Repair the plating first!</span>")
|
||||
return
|
||||
var/obj/item/stack/sheet/rglass/RG = C
|
||||
if (RG.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need two reinforced glass sheets to make a reinforced glass floor!</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You begin adding reinforced glass to the floor...</span>")
|
||||
if(do_after(user, 10, target = src))
|
||||
if (RG.get_amount() >= 2 && !istype(src, /turf/open/transparent/glass/reinforced))
|
||||
PlaceOnTop(/turf/open/transparent/glass/reinforced, flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 80, 1)
|
||||
RG.use(2)
|
||||
to_chat(user, "<span class='notice'>You add reinforced glass to the floor.</span>")
|
||||
return
|
||||
else if(istype(C, /obj/item/stack/tile))
|
||||
if(!broken && !burnt)
|
||||
for(var/obj/O in src)
|
||||
@@ -98,6 +132,11 @@
|
||||
|
||||
return TRUE
|
||||
|
||||
/turf/open/floor/plating/rust_heretic_act()
|
||||
if(prob(70))
|
||||
new /obj/effect/temp_visual/glowing_rune(src)
|
||||
ChangeTurf(/turf/open/floor/plating/rust)
|
||||
|
||||
/turf/open/floor/plating/make_plating()
|
||||
return
|
||||
|
||||
|
||||
@@ -192,6 +192,7 @@
|
||||
icon_state = "map-shuttle"
|
||||
explosion_block = 3
|
||||
flags_1 = CAN_BE_DIRTY_1 | DEFAULT_RICOCHET_1
|
||||
flags_ricochet = RICOCHET_SHINY | RICOCHET_HARD
|
||||
sheet_type = /obj/item/stack/sheet/mineral/titanium
|
||||
smooth = SMOOTH_MORE|SMOOTH_DIAGONAL
|
||||
canSmoothWith = list(/turf/closed/wall/mineral/titanium, /obj/machinery/door/airlock/shuttle, /obj/machinery/door/airlock, /obj/structure/window/shuttle, /obj/structure/shuttle/engine/heater, /obj/structure/falsewall/titanium)
|
||||
|
||||
@@ -188,17 +188,25 @@
|
||||
icon = 'icons/turf/walls/rusty_wall.dmi'
|
||||
hardness = 45
|
||||
|
||||
/turf/closed/wall/rust/rust_heretic_act()
|
||||
ScrapeAway()
|
||||
|
||||
/turf/closed/wall/r_wall/rust
|
||||
name = "rusted reinforced wall"
|
||||
desc = "A huge chunk of rusted reinforced metal."
|
||||
icon = 'icons/turf/walls/rusty_reinforced_wall.dmi'
|
||||
hardness = 15
|
||||
|
||||
/turf/closed/wall/r_wall/rust/rust_heretic_act()
|
||||
if(prob(50))
|
||||
return
|
||||
ScrapeAway()
|
||||
|
||||
/turf/closed/wall/mineral/bronze
|
||||
name = "clockwork wall"
|
||||
desc = "A huge chunk of bronze, decorated like gears and cogs."
|
||||
icon = 'icons/turf/walls/clockwork_wall.dmi'
|
||||
icon_state = "clockwork_wall"
|
||||
sheet_type = /obj/item/stack/tile/bronze
|
||||
sheet_type = /obj/item/stack/sheet/bronze
|
||||
sheet_amount = 2
|
||||
girder_type = /obj/structure/girder/bronze
|
||||
|
||||
@@ -235,6 +235,13 @@
|
||||
if(the_rcd.canRturf)
|
||||
return ..()
|
||||
|
||||
/turf/closed/wall/r_wall/rust_heretic_act()
|
||||
if(prob(50))
|
||||
return
|
||||
if(prob(70))
|
||||
new /obj/effect/temp_visual/glowing_rune(src)
|
||||
ChangeTurf(/turf/closed/wall/r_wall/rust)
|
||||
|
||||
/turf/closed/wall/r_wall/syndicate
|
||||
name = "hull"
|
||||
desc = "The armored hull of an ominous looking ship."
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
icon = 'icons/turf/walls/wall.dmi'
|
||||
icon_state = "wall"
|
||||
explosion_block = 1
|
||||
|
||||
flags_1 = DEFAULT_RICOCHET_1
|
||||
flags_ricochet = RICOCHET_HARD
|
||||
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
|
||||
heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall
|
||||
attack_hand_speed = 8
|
||||
@@ -324,4 +325,9 @@
|
||||
|
||||
add_overlay(dent_decals)
|
||||
|
||||
/turf/closed/wall/rust_heretic_act()
|
||||
if(prob(70))
|
||||
new /obj/effect/temp_visual/glowing_rune(src)
|
||||
ChangeTurf(/turf/closed/wall/rust)
|
||||
|
||||
#undef MAX_DENT_DECALS
|
||||
|
||||
@@ -14,6 +14,8 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
var/list/objectives = list()
|
||||
var/antag_memory = ""//These will be removed with antag datum
|
||||
var/antag_moodlet //typepath of moodlet that the mob will gain with their status
|
||||
var/antag_hud_type
|
||||
var/antag_hud_name
|
||||
/// If above 0, this is the multiplier for the speed at which we hijack the shuttle. Do not directly read, use hijack_speed().
|
||||
var/hijack_speed = 0
|
||||
|
||||
@@ -77,6 +79,17 @@ GLOBAL_LIST_EMPTY(antagonists)
|
||||
hud.leave_hud(mob_override)
|
||||
set_antag_hud(mob_override, null)
|
||||
|
||||
// Handles adding and removing the clumsy mutation from clown antags. Gets called in apply/remove_innate_effects
|
||||
/datum/antagonist/proc/handle_clown_mutation(mob/living/mob_override, message, removing = TRUE)
|
||||
var/mob/living/carbon/human/H = mob_override
|
||||
if(H && istype(H) && owner.assigned_role == "Clown")
|
||||
if(removing) // They're a clown becoming an antag, remove clumsy
|
||||
H.dna.remove_mutation(CLOWNMUT)
|
||||
if(!silent && message)
|
||||
to_chat(H, "<span class='boldnotice'>[message]</span>")
|
||||
else
|
||||
H.dna.add_mutation(CLOWNMUT) // We're removing their antag status, add back clumsy
|
||||
|
||||
//Assign default team and creates one for one of a kind team antagonists
|
||||
/datum/antagonist/proc/create_team(datum/team/team)
|
||||
return
|
||||
|
||||
@@ -37,14 +37,14 @@ GLOBAL_LIST_INIT(abductor_gear, subtypesof(/datum/abductor_gear))
|
||||
description = "A dual-mode tool for retrieving specimens and scanning appearances. Scanning can be done through cameras."
|
||||
id = "science_tool"
|
||||
build_path = /obj/item/abductor/gizmo
|
||||
/*
|
||||
|
||||
/datum/abductor_gear/advanced_baton
|
||||
name = "Advanced Baton"
|
||||
description = "A quad-mode baton used for incapacitation and restraining of specimens."
|
||||
id = "advanced_baton"
|
||||
cost = 2
|
||||
build_path = /obj/item/melee/baton/abductor //does not exist?
|
||||
*/
|
||||
build_path = /obj/item/abductor/baton //does not exist?
|
||||
|
||||
/datum/abductor_gear/superlingual_matrix
|
||||
name = "Superlingual Matrix"
|
||||
description = "A mysterious structure that allows for instant communication between users. Pretty impressive until you need to eat something."
|
||||
|
||||
@@ -30,6 +30,22 @@
|
||||
/// Possible gear to be dispensed
|
||||
var/list/possible_gear
|
||||
|
||||
/obj/machinery/abductor/console/Initialize(mapload)
|
||||
. = ..()
|
||||
possible_gear = get_abductor_gear()
|
||||
|
||||
/**
|
||||
* get_abductor_gear: Returns a list of a filtered abductor gear sorted by categories
|
||||
*/
|
||||
/obj/machinery/abductor/console/proc/get_abductor_gear()
|
||||
var/list/filtered_modules = list()
|
||||
for(var/path in GLOB.abductor_gear)
|
||||
var/datum/abductor_gear/AG = new path
|
||||
if(!filtered_modules[AG.category])
|
||||
filtered_modules[AG.category] = list()
|
||||
filtered_modules[AG.category][AG] = AG
|
||||
return filtered_modules
|
||||
|
||||
/obj/machinery/abductor/console/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
|
||||
if(!HAS_TRAIT(user, TRAIT_ABDUCTOR_TRAINING) && !HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_TRAINING))
|
||||
to_chat(user, "<span class='warning'>You start mashing alien buttons at random!</span>")
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user