Merge remote-tracking branch 'upstream/master' into FERMICHEMCurTweaks
This commit is contained in:
@@ -167,7 +167,7 @@
|
||||
/obj/item/book/manual/wiki/barman_recipes,
|
||||
/obj/item/book/granter/action/drink_fling,
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/powered/beach)
|
||||
"aI" = (
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/ruin/powered/animal_hospital)
|
||||
"av" = (
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/item/reagent_containers/spray/cleaner,
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
dir = 1
|
||||
|
||||
@@ -4728,7 +4728,7 @@
|
||||
/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
"lz" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/reagent_containers/glass/rag{
|
||||
/obj/item/reagent_containers/rag{
|
||||
pixel_x = -4;
|
||||
pixel_y = 9
|
||||
},
|
||||
|
||||
@@ -0,0 +1,582 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/turf/closed/wall,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"c" = (
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/machinery/door/airlock/external,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"d" = (
|
||||
/obj/machinery/vending/assist,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"e" = (
|
||||
/obj/machinery/vending/snack/random,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"f" = (
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"g" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"h" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/crowbar/advanced,
|
||||
/obj/item/multitool/advanced{
|
||||
pixel_x = 4;
|
||||
pixel_y = -1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"i" = (
|
||||
/obj/machinery/computer/rdconsole,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"j" = (
|
||||
/obj/structure/chair/comfy/beige,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"k" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/screwdriver/advanced{
|
||||
pixel_y = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"l" = (
|
||||
/obj/structure/table/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"m" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/gps{
|
||||
gpstag = "Abductor Replication Lab";
|
||||
pixel_x = -2;
|
||||
pixel_y = 3
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"n" = (
|
||||
/obj/structure/chair/comfy/beige{
|
||||
icon_state = "comfychair";
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"o" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/weldingtool/advanced{
|
||||
pixel_x = 4;
|
||||
pixel_y = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"p" = (
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/paper{
|
||||
name = "Note to finder";
|
||||
pixel_x = -1;
|
||||
pixel_y = 3;
|
||||
info = "As of yet, our experiments have seen a fair bit of success. Unfortunately, our business partners have stopped funding us as they realised they utterly hate each other. To whoever finds this place, they are yours. Use them how you will. I leave you with the next generation of greytiding."
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"q" = (
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"r" = (
|
||||
/obj/structure/table/glass,
|
||||
/obj/item/wirecutters/advanced{
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/item/wrench/advanced{
|
||||
pixel_x = -1;
|
||||
pixel_y = 3
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"s" = (
|
||||
/obj/structure/chair/comfy/beige{
|
||||
icon_state = "comfychair";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"t" = (
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"u" = (
|
||||
/obj/machinery/light/small{
|
||||
icon_state = "bulb";
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/closet,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner,
|
||||
/obj/item/clothing/shoes/sneakers/brown,
|
||||
/obj/item/clothing/under/pants/classicjeans,
|
||||
/obj/item/clothing/neck/scarf,
|
||||
/obj/item/clothing/neck/stripedgreenscarf,
|
||||
/obj/item/toy/tennis/rainbow,
|
||||
/obj/item/toy/tennis,
|
||||
/obj/item/clothing/suit/hooded/wintercoat/miner,
|
||||
/obj/item/clothing/shoes/sneakers/brown,
|
||||
/obj/item/clothing/under/pants/classicjeans,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"v" = (
|
||||
/obj/machinery/vending/boozeomat{
|
||||
req_access = null;
|
||||
shut_up = 1
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"w" = (
|
||||
/obj/machinery/door/airlock/command{
|
||||
name = "Dorms"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"x" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/table/glass,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"y" = (
|
||||
/obj/machinery/light/small{
|
||||
icon_state = "bulb";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"z" = (
|
||||
/obj/machinery/door/airlock/security{
|
||||
name = "Visiting Business Partners"
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"A" = (
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"B" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/bedsheet/syndie,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"C" = (
|
||||
/obj/structure/closet{
|
||||
name = "Clothes"
|
||||
},
|
||||
/obj/item/clothing/head/chameleon,
|
||||
/obj/item/clothing/gloves/combat,
|
||||
/obj/item/clothing/suit/chameleon,
|
||||
/obj/item/clothing/under/chameleon,
|
||||
/obj/item/clothing/shoes/chameleon,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"D" = (
|
||||
/obj/machinery/light/small,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"E" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/radio/headset/chameleon,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"F" = (
|
||||
/obj/structure/falsewall,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"G" = (
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"H" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/radio/headset/headset_cent/alt{
|
||||
keyslot2 = null
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"I" = (
|
||||
/obj/structure/closet{
|
||||
name = "Official Clothing"
|
||||
},
|
||||
/obj/item/clothing/under/rank/centcom_commander,
|
||||
/obj/item/clothing/head/centhat,
|
||||
/obj/item/clothing/gloves/combat,
|
||||
/obj/item/clothing/suit/armor/vest,
|
||||
/obj/item/clothing/shoes/sneakers/brown,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"J" = (
|
||||
/obj/machinery/door/airlock/command{
|
||||
name = "Dorms"
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"K" = (
|
||||
/obj/machinery/door/airlock/command{
|
||||
name = "Visiting Officials"
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"L" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/bedsheet/centcom,
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"M" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/space/basic,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"N" = (
|
||||
/obj/structure/extinguisher_cabinet,
|
||||
/turf/closed/wall,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"O" = (
|
||||
/obj/structure/reagent_dispensers/water_cooler,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"P" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/template_noop,
|
||||
/area/space/nearstation)
|
||||
"Q" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"R" = (
|
||||
/obj/machinery/light/small{
|
||||
icon_state = "bulb";
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
"T" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/ruin/space/has_grav/powered/advancedlab)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
b
|
||||
d
|
||||
j
|
||||
l
|
||||
q
|
||||
s
|
||||
O
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
b
|
||||
e
|
||||
j
|
||||
m
|
||||
l
|
||||
s
|
||||
f
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
c
|
||||
f
|
||||
j
|
||||
l
|
||||
l
|
||||
s
|
||||
f
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
b
|
||||
f
|
||||
f
|
||||
n
|
||||
n
|
||||
f
|
||||
f
|
||||
w
|
||||
f
|
||||
Q
|
||||
f
|
||||
f
|
||||
M
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
b
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
f
|
||||
M
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
b
|
||||
g
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
b
|
||||
P
|
||||
P
|
||||
M
|
||||
R
|
||||
M
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
N
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
u
|
||||
b
|
||||
P
|
||||
P
|
||||
M
|
||||
f
|
||||
M
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
b
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
M
|
||||
J
|
||||
M
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
b
|
||||
h
|
||||
k
|
||||
o
|
||||
r
|
||||
f
|
||||
b
|
||||
y
|
||||
A
|
||||
A
|
||||
F
|
||||
T
|
||||
A
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
b
|
||||
i
|
||||
f
|
||||
f
|
||||
f
|
||||
t
|
||||
b
|
||||
z
|
||||
v
|
||||
b
|
||||
b
|
||||
b
|
||||
K
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
b
|
||||
p
|
||||
f
|
||||
f
|
||||
f
|
||||
f
|
||||
b
|
||||
A
|
||||
C
|
||||
b
|
||||
G
|
||||
A
|
||||
A
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
b
|
||||
l
|
||||
l
|
||||
x
|
||||
l
|
||||
f
|
||||
b
|
||||
A
|
||||
D
|
||||
b
|
||||
H
|
||||
A
|
||||
D
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
B
|
||||
E
|
||||
b
|
||||
I
|
||||
A
|
||||
L
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -260,7 +260,7 @@
|
||||
/turf/open/floor/plating/asteroid/airless,
|
||||
/area/ruin/unpowered/no_grav)
|
||||
"aQ" = (
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/turf/open/floor/plating/asteroid/airless,
|
||||
/area/ruin/unpowered/no_grav)
|
||||
"aR" = (
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"n" = (
|
||||
/obj/structure/closet/crate/freezer,
|
||||
@@ -117,7 +117,7 @@
|
||||
},
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"o" = (
|
||||
/obj/structure/closet/crate/freezer,
|
||||
@@ -129,7 +129,7 @@
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"p" = (
|
||||
/obj/structure/window/reinforced{
|
||||
@@ -158,7 +158,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"r" = (
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"s" = (
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
|
||||
@@ -203,14 +203,14 @@
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"x" = (
|
||||
/obj/structure/kitchenspike,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"y" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/kitchen/knife/butcher,
|
||||
/obj/item/restraints/handcuffs,
|
||||
/obj/item/reagent_containers/spray/pepper,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"z" = (
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
|
||||
@@ -230,14 +230,14 @@
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"C" = (
|
||||
/obj/machinery/gibber,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"D" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/suit/straight_jacket,
|
||||
/obj/item/reagent_containers/syringe/lethal,
|
||||
/obj/item/reagent_containers/syringe/lethal/choral,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"E" = (
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
|
||||
@@ -258,7 +258,7 @@
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"H" = (
|
||||
/obj/machinery/door/airlock/security,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"I" = (
|
||||
/obj/item/reagent_containers/glass/bottle/morphine{
|
||||
@@ -282,7 +282,7 @@
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"J" = (
|
||||
/obj/structure/rack,
|
||||
@@ -328,12 +328,12 @@
|
||||
/obj/item/cautery,
|
||||
/obj/item/circular_saw,
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"Q" = (
|
||||
/obj/structure/table/optable,
|
||||
/obj/effect/decal/cleanable/blood/old,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"R" = (
|
||||
/obj/structure/table/reinforced,
|
||||
@@ -342,7 +342,7 @@
|
||||
/obj/item/reagent_containers/glass/bottle/mutagen,
|
||||
/obj/item/reagent_containers/glass/bottle/mutagen,
|
||||
/obj/item/razor,
|
||||
/turf/open/floor/plasteel/airless/dark,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/gasthelizard)
|
||||
"S" = (
|
||||
/obj/machinery/suit_storage_unit/security,
|
||||
|
||||
@@ -2010,7 +2010,7 @@
|
||||
/area/ruin/space/has_grav/hotel/bar)
|
||||
"gd" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
|
||||
@@ -1973,7 +1973,7 @@
|
||||
/turf/open/indestructible,
|
||||
/area/awaymission/centcomAway/thunderdome)
|
||||
"lB" = (
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/turf/open/indestructible,
|
||||
/area/awaymission/centcomAway/general)
|
||||
"lD" = (
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
/area/awaymission/beach)
|
||||
"aB" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/turf/open/floor/wood,
|
||||
/area/awaymission/beach)
|
||||
"aC" = (
|
||||
|
||||
@@ -5383,7 +5383,7 @@
|
||||
"kn" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/item/reagent_containers/glass/rag{
|
||||
/obj/item/reagent_containers/rag{
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
|
||||
@@ -3601,7 +3601,7 @@
|
||||
"hn" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/stack/packageWrap,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -124,22 +124,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"aaq" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/bedsheet/clown,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/hallway/secondary/service)
|
||||
"aar" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/bedsheet/mime,
|
||||
/turf/open/floor/wood,
|
||||
/area/hallway/secondary/service)
|
||||
"aas" = (
|
||||
/obj/docking_port/stationary/random{
|
||||
id = "pod_lavaland1";
|
||||
@@ -159,52 +143,6 @@
|
||||
/obj/effect/landmark/xeno_spawn,
|
||||
/turf/open/space,
|
||||
/area/solar/starboard/fore)
|
||||
"aav" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaw" = (
|
||||
/obj/structure/bed,
|
||||
/obj/effect/decal/cleanable/dirt{
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"aax" = (
|
||||
/obj/structure/bed,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"aay" = (
|
||||
/obj/structure/bed,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaz" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaA" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/tank/internals/anesthetic,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"aaE" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/turf/open/space,
|
||||
@@ -1072,6 +1010,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/secondary/entry)
|
||||
"aez" = (
|
||||
/obj/machinery/keycard_auth,
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/qm)
|
||||
"aeB" = (
|
||||
/obj/machinery/status_display,
|
||||
/turf/closed/wall,
|
||||
@@ -13768,6 +13710,14 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/hallway/secondary/service)
|
||||
"aDF" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/bedsheet/clown,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/hallway/secondary/service)
|
||||
"aDG" = (
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/hallway/secondary/service)
|
||||
@@ -14482,7 +14432,7 @@
|
||||
},
|
||||
/obj/item/book/manual/wiki/barman_recipes,
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
@@ -16922,6 +16872,14 @@
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/hallway/secondary/service)
|
||||
"aIP" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/item/bedsheet/mime,
|
||||
/turf/open/floor/wood,
|
||||
/area/hallway/secondary/service)
|
||||
"aIQ" = (
|
||||
/obj/structure/dresser,
|
||||
/turf/open/floor/wood{
|
||||
@@ -79006,6 +78964,17 @@
|
||||
/obj/structure/dresser,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"cCi" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"cCj" = (
|
||||
/obj/structure/closet/secure_closet/personal/cabinet,
|
||||
/obj/item/clothing/suit/jacket{
|
||||
@@ -81023,10 +80992,24 @@
|
||||
icon_state = "wood-broken2"
|
||||
},
|
||||
/area/crew_quarters/dorms)
|
||||
"cFx" = (
|
||||
/obj/structure/bed,
|
||||
/obj/effect/decal/cleanable/dirt{
|
||||
desc = "A thin layer of dust coating the floor.";
|
||||
name = "dust"
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"cFy" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"cFz" = (
|
||||
/obj/structure/bed,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"cFA" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/flashlight/lamp/green,
|
||||
@@ -88896,6 +88879,11 @@
|
||||
/obj/structure/chair/office/dark,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"cTc" = (
|
||||
/obj/structure/bed,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/crew_quarters/dorms)
|
||||
"cTd" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/fancy/donut_box,
|
||||
@@ -90092,6 +90080,15 @@
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"cUX" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/light,
|
||||
/obj/machinery/status_display{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"cUY" = (
|
||||
/obj/structure/closet/secure_closet/personal/cabinet,
|
||||
/obj/item/clothing/suit/jacket{
|
||||
@@ -114279,11 +114276,6 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
name = "Maintenance Hatch";
|
||||
req_access_txt = "12"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 2
|
||||
@@ -114291,6 +114283,10 @@
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/door/airlock/maintenance_hatch{
|
||||
name = "Chapel Maintenance";
|
||||
req_access_txt = "27"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"dKE" = (
|
||||
@@ -118990,7 +118986,6 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -119335,7 +119330,6 @@
|
||||
/turf/closed/wall,
|
||||
/area/chapel/office)
|
||||
"dTx" = (
|
||||
/obj/structure/bodycontainer/morgue,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
@@ -119346,6 +119340,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"dTy" = (
|
||||
@@ -121771,7 +121766,6 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"dYv" = (
|
||||
/obj/structure/bodycontainer/morgue,
|
||||
/obj/structure/sign/poster/official/ian{
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -121785,6 +121779,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet/crate/coffin,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"dYw" = (
|
||||
@@ -122827,7 +122822,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"eat" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
@@ -123564,9 +123558,6 @@
|
||||
/obj/structure/cable/white{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
@@ -123577,6 +123568,9 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"ebU" = (
|
||||
@@ -123819,7 +123813,6 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"ecw" = (
|
||||
/obj/structure/bodycontainer/morgue,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 1;
|
||||
pixel_y = -24
|
||||
@@ -126415,6 +126408,13 @@
|
||||
/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior,
|
||||
/turf/open/floor/engine,
|
||||
/area/science/mixing)
|
||||
"fwr" = (
|
||||
/obj/machinery/door/poddoor{
|
||||
id = "chapelgun";
|
||||
name = "Chapel Launcher Door"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/chapel/office)
|
||||
"fFK" = (
|
||||
/obj/machinery/ore_silo,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -126433,6 +126433,10 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/circuit)
|
||||
"fHS" = (
|
||||
/obj/structure/sign/warning/vacuum,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/chapel/office)
|
||||
"fLR" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
@@ -126465,6 +126469,16 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/science/circuit)
|
||||
"gJj" = (
|
||||
/obj/machinery/door/window/northleft{
|
||||
name = "Mass Driver"
|
||||
},
|
||||
/obj/machinery/mass_driver{
|
||||
id = "chapelgun";
|
||||
name = "Holy Driver"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/chapel/office)
|
||||
"gKr" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
@@ -126482,6 +126496,22 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/misc_lab)
|
||||
"gNJ" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"gNS" = (
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -126546,6 +126576,10 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/quartermaster/storage)
|
||||
"hei" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/chapel/office)
|
||||
"hic" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/integrated_electronics/analyzer,
|
||||
@@ -126607,6 +126641,22 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"hLO" = (
|
||||
/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/delivery,
|
||||
/obj/structure/closet,
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
lootcount = 3;
|
||||
name = "3maintenance loot spawner"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"hNZ" = (
|
||||
/obj/structure/chair/office/light{
|
||||
dir = 8
|
||||
@@ -126653,6 +126703,9 @@
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/science/mixing)
|
||||
"iyd" = (
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
"iQh" = (
|
||||
/obj/structure/bodycontainer/morgue{
|
||||
dir = 1
|
||||
@@ -126717,6 +126770,9 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/research/abandoned)
|
||||
"jhK" = (
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"jjN" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/camera{
|
||||
@@ -126814,6 +126870,28 @@
|
||||
/obj/machinery/chem_master,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/medical/medbay/central)
|
||||
"jPA" = (
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/computer/pod/old{
|
||||
density = 0;
|
||||
icon = 'icons/obj/airlock_machines.dmi';
|
||||
icon_state = "airlock_control_standby";
|
||||
id = "chapelgun";
|
||||
name = "Mass Driver Controller";
|
||||
pixel_x = 0;
|
||||
pixel_y = -24
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"jRy" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
@@ -127098,6 +127176,33 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/science/mixing)
|
||||
"mXJ" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"nht" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"nyN" = (
|
||||
/obj/machinery/vending/kink,
|
||||
/turf/open/floor/plating,
|
||||
@@ -127106,6 +127211,19 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/general/hidden,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"owr" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"oIl" = (
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
|
||||
dir = 1
|
||||
@@ -127214,6 +127332,13 @@
|
||||
dir = 1
|
||||
},
|
||||
/area/science/circuit)
|
||||
"poI" = (
|
||||
/obj/structure/bed,
|
||||
/obj/item/tank/internals/anesthetic,
|
||||
/obj/item/clothing/mask/breath,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"psi" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/bodycontainer/morgue{
|
||||
@@ -127277,6 +127402,12 @@
|
||||
/obj/effect/spawner/lootdrop/keg,
|
||||
/turf/open/floor/plating,
|
||||
/area/crew_quarters/abandoned_gambling_den)
|
||||
"qMR" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 2
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/chapel/office)
|
||||
"rhO" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
@@ -127426,6 +127557,14 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"uZN" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/spawner/lootdrop/maintenance{
|
||||
lootcount = 2;
|
||||
name = "2maintenance loot spawner"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/maintenance/port/aft)
|
||||
"vhA" = (
|
||||
/obj/item/clothing/under/color/grey,
|
||||
/turf/open/floor/plating,
|
||||
@@ -127563,6 +127702,25 @@
|
||||
/obj/effect/turf_decal/bot,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/research)
|
||||
"xWZ" = (
|
||||
/obj/structure/bodycontainer/morgue{
|
||||
dir = 2
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/chapel/office)
|
||||
"xXn" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
@@ -151680,7 +151838,7 @@ djm
|
||||
fow
|
||||
dod
|
||||
dod
|
||||
aaA
|
||||
poI
|
||||
dfY
|
||||
ajr
|
||||
aad
|
||||
@@ -159671,12 +159829,12 @@ dWI
|
||||
dZf
|
||||
dZM
|
||||
eat
|
||||
dLY
|
||||
dLY
|
||||
dLY
|
||||
dLY
|
||||
dLY
|
||||
dLY
|
||||
dZN
|
||||
dZN
|
||||
dZN
|
||||
dZN
|
||||
fHS
|
||||
dZN
|
||||
dLY
|
||||
dLY
|
||||
aad
|
||||
@@ -159926,20 +160084,20 @@ dWJ
|
||||
dLW
|
||||
dYu
|
||||
dZg
|
||||
dYu
|
||||
dYu
|
||||
dZg
|
||||
ebR
|
||||
dLW
|
||||
ecQ
|
||||
edl
|
||||
aad
|
||||
jhK
|
||||
jhK
|
||||
dZN
|
||||
owr
|
||||
mXJ
|
||||
gJj
|
||||
qMR
|
||||
fwr
|
||||
aaa
|
||||
aaa
|
||||
aad
|
||||
iyd
|
||||
aaa
|
||||
aaa
|
||||
aad
|
||||
iyd
|
||||
aaa
|
||||
aaa
|
||||
aaa
|
||||
@@ -160183,14 +160341,14 @@ dTw
|
||||
dTw
|
||||
dTw
|
||||
dTw
|
||||
dLX
|
||||
dLW
|
||||
dLW
|
||||
dLW
|
||||
ecv
|
||||
dNt
|
||||
edl
|
||||
aad
|
||||
hLO
|
||||
uZN
|
||||
hei
|
||||
gNJ
|
||||
jPA
|
||||
dTw
|
||||
dTw
|
||||
dTw
|
||||
aad
|
||||
aad
|
||||
aad
|
||||
@@ -160443,8 +160601,8 @@ dTw
|
||||
dZN
|
||||
dZN
|
||||
dZN
|
||||
dZN
|
||||
dZN
|
||||
xWZ
|
||||
nht
|
||||
dTw
|
||||
dTw
|
||||
dTw
|
||||
@@ -160834,11 +160992,11 @@ ary
|
||||
aAf
|
||||
aBu
|
||||
aCB
|
||||
aaq
|
||||
aDF
|
||||
aEJ
|
||||
aFV
|
||||
aDI
|
||||
aar
|
||||
aIP
|
||||
aKo
|
||||
aLE
|
||||
aMX
|
||||
@@ -174465,7 +174623,7 @@ aaa
|
||||
aaa
|
||||
aad
|
||||
aQQ
|
||||
aQQ
|
||||
aez
|
||||
aUp
|
||||
aVY
|
||||
aXE
|
||||
@@ -178374,7 +178532,7 @@ cyY
|
||||
cAx
|
||||
cCd
|
||||
cDD
|
||||
aaw
|
||||
cFx
|
||||
cGU
|
||||
cAw
|
||||
cJl
|
||||
@@ -178382,7 +178540,7 @@ cLa
|
||||
cMx
|
||||
cIi
|
||||
cPR
|
||||
aax
|
||||
cFz
|
||||
cDG
|
||||
cUW
|
||||
cAw
|
||||
@@ -179155,7 +179313,7 @@ cNU
|
||||
cDI
|
||||
cFB
|
||||
cDI
|
||||
aaz
|
||||
cUX
|
||||
cAw
|
||||
cYj
|
||||
cZV
|
||||
@@ -179402,7 +179560,7 @@ czc
|
||||
cAw
|
||||
cCg
|
||||
cDG
|
||||
aax
|
||||
cFz
|
||||
cGW
|
||||
cIi
|
||||
cJo
|
||||
@@ -180171,7 +180329,7 @@ bHq
|
||||
cxt
|
||||
coI
|
||||
cAw
|
||||
aav
|
||||
cCi
|
||||
cDI
|
||||
cFB
|
||||
cDI
|
||||
@@ -180439,7 +180597,7 @@ cMB
|
||||
cIi
|
||||
cPW
|
||||
cRv
|
||||
aay
|
||||
cTc
|
||||
cVb
|
||||
cAw
|
||||
cYp
|
||||
|
||||
@@ -2,58 +2,10 @@
|
||||
"aaa" = (
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"aab" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin3";
|
||||
name = "Cabin Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = 25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"aac" = (
|
||||
/obj/effect/landmark/carpspawn,
|
||||
/turf/open/space,
|
||||
/area/space)
|
||||
"aad" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin4";
|
||||
name = "Cabin Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
|
||||
/obj/structure/bed,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"aae" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin2";
|
||||
name = "Cabin Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = 25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaf" = (
|
||||
/obj/structure/lattice,
|
||||
/turf/open/space,
|
||||
@@ -300,19 +252,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/security/prison)
|
||||
"aaM" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin5";
|
||||
name = "Dorm Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaN" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
@@ -355,37 +294,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/prison)
|
||||
"aaU" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin6";
|
||||
name = "Dorm Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaV" = (
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin7";
|
||||
name = "Door Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"aaY" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -10233,6 +10141,22 @@
|
||||
/obj/item/clothing/under/assistantformal,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"asV" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin3";
|
||||
name = "Cabin Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = 25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2,
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"asW" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -10271,6 +10195,23 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/dorms)
|
||||
"ata" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin4";
|
||||
name = "Cabin Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
|
||||
/obj/structure/bed,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"atb" = (
|
||||
/obj/structure/closet/secure_closet/personal/cabinet,
|
||||
/obj/machinery/airalarm{
|
||||
@@ -11951,6 +11892,21 @@
|
||||
/obj/item/clothing/under/suit_jacket/tan,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"awE" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin2";
|
||||
name = "Cabin Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = 25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"awF" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
|
||||
dir = 4
|
||||
@@ -11964,6 +11920,19 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/dorms)
|
||||
"awG" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin5";
|
||||
name = "Dorm Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"awH" = (
|
||||
/obj/machinery/newscaster{
|
||||
pixel_y = 32
|
||||
@@ -15014,6 +14983,22 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/crew_quarters/dorms)
|
||||
"aCJ" = (
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin6";
|
||||
name = "Dorm Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/cobweb,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/carpet,
|
||||
/area/crew_quarters/dorms)
|
||||
"aCK" = (
|
||||
/obj/structure/closet/secure_closet/personal/cabinet,
|
||||
/obj/machinery/airalarm{
|
||||
@@ -17590,6 +17575,21 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/crew_quarters/dorms)
|
||||
"aHS" = (
|
||||
/obj/machinery/button/door{
|
||||
id = "Cabin7";
|
||||
name = "Door Bolt Control";
|
||||
normaldoorcontrol = 1;
|
||||
pixel_x = -25;
|
||||
specialfunctions = 4
|
||||
},
|
||||
/obj/structure/bed,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/bedsheet,
|
||||
/turf/open/floor/wood,
|
||||
/area/crew_quarters/dorms)
|
||||
"aHT" = (
|
||||
/obj/structure/chair/wood/normal{
|
||||
dir = 4
|
||||
@@ -20373,6 +20373,9 @@
|
||||
/obj/effect/turf_decal/tile/brown{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/keycard_auth{
|
||||
pixel_y = 23
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/qm)
|
||||
"aNS" = (
|
||||
@@ -38985,7 +38988,7 @@
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/reagent_containers/glass/rag{
|
||||
/obj/item/reagent_containers/rag{
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
@@ -59281,7 +59284,7 @@
|
||||
},
|
||||
/area/maintenance/port/aft)
|
||||
"ckR" = (
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood{
|
||||
icon_state = "wood-broken4"
|
||||
@@ -120053,10 +120056,10 @@ agz
|
||||
aoV
|
||||
dhs
|
||||
arB
|
||||
aab
|
||||
asV
|
||||
auf
|
||||
arB
|
||||
aae
|
||||
awE
|
||||
axE
|
||||
arB
|
||||
dhA
|
||||
@@ -121595,19 +121598,19 @@ anK
|
||||
aoZ
|
||||
aqk
|
||||
arB
|
||||
aad
|
||||
ata
|
||||
aul
|
||||
avp
|
||||
aaM
|
||||
awG
|
||||
axJ
|
||||
avp
|
||||
aAj
|
||||
arB
|
||||
aaU
|
||||
aCJ
|
||||
aEe
|
||||
arB
|
||||
boS
|
||||
aaV
|
||||
aHS
|
||||
aJh
|
||||
aKt
|
||||
aLW
|
||||
|
||||
@@ -13484,7 +13484,7 @@
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/book/manual/wiki/barman_recipes,
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2248,11 +2248,6 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/tdome/arena_source)
|
||||
"fR" = (
|
||||
/obj/item/paicard,
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/wizard_station)
|
||||
"fS" = (
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 8
|
||||
@@ -2940,22 +2935,6 @@
|
||||
/obj/machinery/capture_the_flag/red,
|
||||
/turf/open/floor/circuit/green/anim,
|
||||
/area/ctf)
|
||||
"hH" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/flashlight/seclite,
|
||||
/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
|
||||
},
|
||||
/obj/item/paicard,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/centcom/ferry)
|
||||
"hI" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 10
|
||||
@@ -8415,6 +8394,9 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/syndicate_mothership)
|
||||
"tg" = (
|
||||
/obj/machinery/shower{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/soap/syndie,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/syndicate_mothership)
|
||||
@@ -9858,7 +9840,7 @@
|
||||
id = "XCCFerry";
|
||||
name = "Hanger Bay Shutters";
|
||||
pixel_y = 24;
|
||||
req_access_txt = "2"
|
||||
req_access_txt = "101"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 5
|
||||
@@ -11391,6 +11373,22 @@
|
||||
/obj/structure/table/reinforced,
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/centcom/ferry)
|
||||
"AL" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/flashlight/seclite,
|
||||
/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
|
||||
},
|
||||
/obj/item/paicard,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/centcom/ferry)
|
||||
"AM" = (
|
||||
/obj/machinery/shuttle_manipulator,
|
||||
/turf/open/floor/circuit/green,
|
||||
@@ -11587,6 +11585,11 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/centcom/holding)
|
||||
"Bp" = (
|
||||
/obj/item/paicard,
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/wizard_station)
|
||||
"Bs" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/computer/libraryconsole/bookmanagement,
|
||||
@@ -15122,7 +15125,7 @@
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/book/manual/wiki/barman_recipes,
|
||||
/obj/item/reagent_containers/food/drinks/shaker,
|
||||
/obj/item/reagent_containers/glass/rag,
|
||||
/obj/item/reagent_containers/rag,
|
||||
/obj/machinery/newscaster{
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -17434,6 +17437,8 @@
|
||||
/obj/structure/mirror{
|
||||
pixel_x = -28
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/reagent_containers/rag/towel/syndicate,
|
||||
/turf/open/floor/plasteel/freezer,
|
||||
/area/syndicate_mothership)
|
||||
"Rm" = (
|
||||
@@ -25742,7 +25747,7 @@ lI
|
||||
lI
|
||||
lI
|
||||
Ax
|
||||
fR
|
||||
Bp
|
||||
qZ
|
||||
qZ
|
||||
Ax
|
||||
@@ -56338,7 +56343,7 @@ yr
|
||||
sw
|
||||
sw
|
||||
Ad
|
||||
hH
|
||||
AL
|
||||
Bx
|
||||
sw
|
||||
Cv
|
||||
|
||||
@@ -38,5 +38,5 @@
|
||||
|
||||
//Gangshit
|
||||
#define NOT_DOMINATING -1
|
||||
#define MAX_LEADERS_GANG 3
|
||||
#define MAX_LEADERS_GANG 4
|
||||
#define INITIAL_DOM_ATTEMPTS 3
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
|
||||
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
|
||||
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
|
||||
#define ui_boxvore "EAST-4:22,SOUTH+1:6"
|
||||
#define ui_boxvore "EAST-5:22,SOUTH+1:6"
|
||||
|
||||
//Filters
|
||||
#define CIT_FILTER_STAMINACRIT filter(type="drop_shadow", x=0, y=0, size=-3, border=0, color="#04080F")
|
||||
@@ -40,7 +40,7 @@
|
||||
#define BALLS_SACK_SIZE_DEF 8
|
||||
#define BALLS_SACK_SIZE_MAX 40
|
||||
|
||||
#define CUM_RATE 5
|
||||
#define CUM_RATE 0.035
|
||||
#define CUM_RATE_MULT 1
|
||||
#define CUM_EFFICIENCY 1//amount of nutrition required per life()
|
||||
|
||||
@@ -115,22 +115,21 @@
|
||||
|
||||
//xenobio console upgrade stuff
|
||||
#define XENOBIO_UPGRADE_MONKEYS 1
|
||||
#define XENOBIO_UPGRADE_SLIMEBASIC 2
|
||||
#define XENOBIO_UPGRADE_SLIMEBASIC 2
|
||||
#define XENOBIO_UPGRADE_SLIMEADV 4
|
||||
|
||||
//stamina stuff
|
||||
#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement
|
||||
#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
|
||||
#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
|
||||
#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement
|
||||
#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
|
||||
#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
|
||||
#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT
|
||||
#define MIN_MELEE_STAMCOST 1.25 //Minimum cost for swinging items around. Will be extra useful when stats and skills are introduced.
|
||||
|
||||
#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
|
||||
|
||||
//Citadel toggles because bitflag memes
|
||||
#define MEDIHOUND_SLEEPER 1
|
||||
#define EATING_NOISES 2
|
||||
#define DIGESTION_NOISES 4
|
||||
#define MEDIHOUND_SLEEPER (1<<0)
|
||||
#define EATING_NOISES (1<<1)
|
||||
#define DIGESTION_NOISES (1<<2)
|
||||
|
||||
#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES)
|
||||
|
||||
|
||||
+21
-12
@@ -3,26 +3,35 @@
|
||||
#define COLOR_INPUT_DISABLED "#F0F0F0"
|
||||
#define COLOR_INPUT_ENABLED "#D3B5B5"
|
||||
|
||||
//#define COLOR_WHITE "#EEEEEE"
|
||||
//#define COLOR_SILVER "#C0C0C0"
|
||||
//#define COLOR_GRAY "#808080"
|
||||
#define COLOR_DARKMODE_INFO_BUTTONS_BG "#40628A"
|
||||
#define COLOR_DARKMODE_ISSUE_BUTTON_BG "#ce4242"
|
||||
#define COLOR_DARKMODE_BACKGROUND "#202020"
|
||||
#define COLOR_DARKMODE_DARKBACKGROUND "#171717"
|
||||
#define COLOR_DARKMODE_TEXT "#f0f0f0"
|
||||
|
||||
#define COLOR_WHITEMODE_INFO_BUTTONS_BG "#90b3dd"
|
||||
#define COLOR_WHITEMODE_ISSUE_BUTTON_BG "#ef7f7f"
|
||||
#define COLOR_WHITEMODE_BACKGROUND "#ffffff"
|
||||
#define COLOR_WHITEMODE_DARKBACKGROUND "#eeeeee"
|
||||
#define COLOR_WHITEMODE_TEXT "#000000"
|
||||
|
||||
#define COLOR_FLOORTILE_GRAY "#8D8B8B"
|
||||
#define COLOR_ALMOST_BLACK "#333333"
|
||||
//#define COLOR_BLACK "#000000"
|
||||
#define COLOR_BLACK "#000000"
|
||||
#define COLOR_RED "#FF0000"
|
||||
//#define COLOR_RED_LIGHT "#FF3333"
|
||||
//#define COLOR_MAROON "#800000"
|
||||
#define COLOR_RED_LIGHT "#FF3333"
|
||||
#define COLOR_MAROON "#800000"
|
||||
#define COLOR_YELLOW "#FFFF00"
|
||||
//#define COLOR_OLIVE "#808000"
|
||||
//#define COLOR_LIME "#32CD32"
|
||||
#define COLOR_OLIVE "#808000"
|
||||
#define COLOR_LIME "#32CD32"
|
||||
#define COLOR_GREEN "#008000"
|
||||
#define COLOR_CYAN "#00FFFF"
|
||||
//#define COLOR_TEAL "#008080"
|
||||
#define COLOR_TEAL "#008080"
|
||||
#define COLOR_BLUE "#0000FF"
|
||||
//#define COLOR_BLUE_LIGHT "#33CCFF"
|
||||
//#define COLOR_NAVY "#000080"
|
||||
#define COLOR_BLUE_LIGHT "#33CCFF"
|
||||
#define COLOR_NAVY "#000080"
|
||||
#define COLOR_PINK "#FFC0CB"
|
||||
//#define COLOR_MAGENTA "#FF00FF"
|
||||
#define COLOR_MAGENTA "#FF00FF"
|
||||
#define COLOR_PURPLE "#800080"
|
||||
#define COLOR_ORANGE "#FF9900"
|
||||
#define COLOR_BEIGE "#CEB689"
|
||||
|
||||
@@ -183,4 +183,16 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
|
||||
#define BODY_ZONE_PRECISE_R_FOOT "r_foot"
|
||||
|
||||
//We will round to this value in damage calculations.
|
||||
#define DAMAGE_PRECISION 0.1
|
||||
#define DAMAGE_PRECISION 0.1
|
||||
|
||||
//items total mass, used to calculate their attacks' stamina costs. If not defined, the cost will be (w_class * 1.25)
|
||||
#define TOTAL_MASS_TINY_ITEM 1.25
|
||||
#define TOTAL_MASS_SMALL_ITEM 2.5
|
||||
#define TOTAL_MASS_NORMAL_ITEM 3.75
|
||||
#define TOTAL_MASS_BULKY_ITEM 5
|
||||
#define TOTAL_MASS_HUGE_ITEM 6.25
|
||||
#define TOTAL_MASS_GIGANTIC_ITEM 7.5
|
||||
|
||||
#define TOTAL_MASS_HAND_REPLACEMENT 5 //standard punching stamina cost. most hand replacements are huge items anyway.
|
||||
#define TOTAL_MASS_MEDIEVAL_WEAPON 3.6 //very, very generic average sword/warpick/etc. weight in pounds.
|
||||
#define TOTAL_MASS_TOY_SWORD 1.5
|
||||
|
||||
@@ -73,6 +73,8 @@
|
||||
#define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next)
|
||||
#define COMPONENT_BLOCK_REACH 1
|
||||
#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)
|
||||
#define COMPONENT_BLOCK_TELEPORT 1
|
||||
/////////////////
|
||||
#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost)
|
||||
#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
#define DONATOR_GROUP_TIER_1_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_1_donators
|
||||
#define DONATOR_GROUP_TIER_2_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_2_donators
|
||||
#define DONATOR_GROUP_TIER_3_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_3_donators
|
||||
|
||||
#define DONATOR_GROUP_TIER_1_CONFIG_SUBPATH keyed_list/donator_group/tier_1_donators
|
||||
#define DONATOR_GROUP_TIER_2_CONFIG_SUBPATH keyed_list/donator_group/tier_2_donators
|
||||
#define DONATOR_GROUP_TIER_3_CONFIG_SUBPATH keyed_list/donator_group/tier_3_donators
|
||||
|
||||
#define TIER_1_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_1_CONFIG_SUBPATH)
|
||||
#define TIER_2_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_2_CONFIG_SUBPATH)
|
||||
#define TIER_3_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_3_CONFIG_SUBPATH)
|
||||
|
||||
//flags
|
||||
#define DONATOR_GROUP_TIER_1 "T1"
|
||||
#define DONATOR_GROUP_TIER_2 "T2"
|
||||
#define DONATOR_GROUP_TIER_3 "T3"
|
||||
|
||||
#define IS_CKEY_DONATOR_GROUP(ckey, groupid) is_donator_group(ckey, groupid)
|
||||
@@ -7,7 +7,7 @@
|
||||
//for convenience
|
||||
#define ENABLE_BITFIELD(variable, flag) (variable |= (flag))
|
||||
#define DISABLE_BITFIELD(variable, flag) (variable &= ~(flag))
|
||||
#define CHECK_BITFIELD(variable, flag) (variable & flag)
|
||||
#define CHECK_BITFIELD(variable, flag) (variable & (flag))
|
||||
#define TOGGLE_BITFIELD(variable, flag) (variable ^= (flag))
|
||||
|
||||
GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768))
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
|
||||
#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
|
||||
#define ITEM_SLOT_NECK (1<<13)
|
||||
#define ITEM_SLOT_SUITSTORE (1<<14)
|
||||
|
||||
//SLOTS
|
||||
#define SLOT_BACK 1
|
||||
@@ -52,6 +53,7 @@
|
||||
#define SLOT_LEGCUFFED 19
|
||||
#define SLOT_GENERC_DEXTROUS_STORAGE 20
|
||||
|
||||
|
||||
#define SLOTS_AMT 20 // Keep this up to date!
|
||||
|
||||
//I hate that this has to exist
|
||||
@@ -84,6 +86,8 @@
|
||||
. = ITEM_SLOT_ICLOTHING
|
||||
if(SLOT_L_STORE, SLOT_R_STORE)
|
||||
. = ITEM_SLOT_POCKET
|
||||
if(SLOT_S_STORE)
|
||||
. = ITEM_SLOT_SUITSTORE
|
||||
|
||||
|
||||
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
|
||||
@@ -230,3 +234,6 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list(
|
||||
/obj/item/tank/internals/emergency_oxygen,
|
||||
/obj/item/tank/internals/plasmaman,
|
||||
/obj/item/toy)))
|
||||
|
||||
//Internals checker
|
||||
#define GET_INTERNAL_SLOTS(C) list(C.head, C.wear_mask)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
//Martial arts defines
|
||||
|
||||
#define MARTIALART_BOXING "boxing"
|
||||
#define MARTIALART_WRESTLING "wrestling"
|
||||
#define MARTIALART_SLEEPINGCARP "sleeping carp"
|
||||
#define MARTIALART_PSYCHOBRAWL "psychotic brawling"
|
||||
#define MARTIALART_MUSHPUNCH "mushroom punch"
|
||||
#define MARTIALART_KRAVMAGA "krav maga"
|
||||
#define MARTIALART_CQC "CQC"
|
||||
#define MARTIALART_PLASMAFIST "plasma fist"
|
||||
+10
-8
@@ -57,7 +57,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
||||
#define BODYPARTS_LAYER 28 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
|
||||
#define MARKING_LAYER 27 //Matrixed body markings because clashing with snouts?
|
||||
#define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts
|
||||
#define GENITALS_ADJ_LAYER 25
|
||||
#define GENITALS_FRONT_LAYER 25 //Draws some genitalia above clothes and the TAUR body if need be.
|
||||
#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup)
|
||||
#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
|
||||
#define DAMAGE_LAYER 22 //damage indicators (cuts and burns)
|
||||
@@ -69,7 +69,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
||||
#define EARS_LAYER 17
|
||||
#define BODY_TAUR_LAYER 16
|
||||
#define SUIT_LAYER 15
|
||||
#define GENITALS_FRONT_LAYER 14 //Draws some genitalia above clothes and the TAUR body if need be.
|
||||
#define GLASSES_LAYER 13
|
||||
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
|
||||
#define SUIT_STORE_LAYER 11
|
||||
@@ -83,7 +82,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
|
||||
#define HANDS_LAYER 3
|
||||
#define BODY_FRONT_LAYER 2
|
||||
#define FIRE_LAYER 1 //If you're on fire
|
||||
#define TOTAL_LAYERS 31 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
|
||||
#define TOTAL_LAYERS 30 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
|
||||
|
||||
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
|
||||
//Because I *KNOW* somebody will think layer+1 means "above"
|
||||
@@ -275,10 +274,6 @@ GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE))
|
||||
GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_SKIN_ALT = 'icons/obj/pda_alt.dmi',
|
||||
PDA_SKIN_RUGGED = 'icons/obj/pda_rugged.dmi', PDA_SKIN_MODERN = 'icons/obj/pda_modern.dmi'))
|
||||
|
||||
//Color Defines
|
||||
#define OOC_COLOR "#002eb8"
|
||||
#define AOOC_COLOR "#b8002e"
|
||||
|
||||
/////////////////////////////////////
|
||||
// atom.appearence_flags shortcuts //
|
||||
/////////////////////////////////////
|
||||
@@ -459,6 +454,13 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
|
||||
#define SUMMON_GUNS "guns"
|
||||
#define SUMMON_MAGIC "magic"
|
||||
|
||||
#define TELEPORT_CHANNEL_BLUESPACE "bluespace" //Classic bluespace teleportation, requires a sender but no receiver
|
||||
#define TELEPORT_CHANNEL_QUANTUM "quantum" //Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption
|
||||
#define TELEPORT_CHANNEL_WORMHOLE "wormhole" //Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
|
||||
#define TELEPORT_CHANNEL_MAGIC "magic" //Magic teleportation, does whatever it wants (unless there's antimagic)
|
||||
#define TELEPORT_CHANNEL_CULT "cult" //Cult teleportation, does whatever it wants (unless there's holiness)
|
||||
#define TELEPORT_CHANNEL_FREE "free" //Anything else
|
||||
|
||||
//Run the world with this parameter to enable a single run though of the game setup and tear down process with unit tests in between
|
||||
#define TEST_RUN_PARAMETER "test-run"
|
||||
//Force the log directory to be something specific in the data/logs folder
|
||||
@@ -493,4 +495,4 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
|
||||
#define PREF_SAVELOAD_COOLDOWN 5
|
||||
|
||||
#define VOMIT_TOXIC 1
|
||||
#define VOMIT_PURPLE 2
|
||||
#define VOMIT_PURPLE 2
|
||||
|
||||
@@ -26,14 +26,15 @@
|
||||
#define ABSTRACT (1<<8) // for all things that are technically items but used for various different stuff
|
||||
#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect)
|
||||
#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
|
||||
#define NO_UNIFORM_REQUIRED (1<<11) // Can be worn on certain slots (currently belt and id) that would otherwise require an uniform.
|
||||
|
||||
// Flags for the clothing_flags var on /obj/item/clothing
|
||||
|
||||
#define LAVAPROTECT (1<<0)
|
||||
#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag.
|
||||
#define BLOCK_GAS_SMOKE_EFFECT (1<<2) // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
|
||||
#define MASKINTERNALS (1<<3) // mask allows internals
|
||||
#define ALLOWINTERNALS (1<<3) // mask allows internals
|
||||
#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc
|
||||
#define THICKMATERIAL (1<<5) //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body.
|
||||
#define VOICEBOX_TOGGLABLE (1<<6) // The voicebox in this clothing can be toggled.
|
||||
#define VOICEBOX_DISABLED (1<<7) // The voicebox is currently turned off.
|
||||
#define VOICEBOX_DISABLED (1<<7) // The voicebox is currently turned off.
|
||||
|
||||
@@ -1,5 +1,55 @@
|
||||
// Radios use a large variety of predefined frequencies.
|
||||
|
||||
//say based modes like binary are in living/say.dm
|
||||
|
||||
#define RADIO_CHANNEL_COMMON "Common"
|
||||
#define RADIO_KEY_COMMON ";"
|
||||
|
||||
#define RADIO_CHANNEL_SECURITY "Security"
|
||||
#define RADIO_KEY_SECURITY "s"
|
||||
#define RADIO_TOKEN_SECURITY ":s"
|
||||
|
||||
#define RADIO_CHANNEL_ENGINEERING "Engineering"
|
||||
#define RADIO_KEY_ENGINEERING "e"
|
||||
#define RADIO_TOKEN_ENGINEERING ":e"
|
||||
|
||||
#define RADIO_CHANNEL_COMMAND "Command"
|
||||
#define RADIO_KEY_COMMAND "c"
|
||||
#define RADIO_TOKEN_COMMAND ":c"
|
||||
|
||||
#define RADIO_CHANNEL_SCIENCE "Science"
|
||||
#define RADIO_KEY_SCIENCE "n"
|
||||
#define RADIO_TOKEN_SCIENCE ":n"
|
||||
|
||||
#define RADIO_CHANNEL_MEDICAL "Medical"
|
||||
#define RADIO_KEY_MEDICAL "m"
|
||||
#define RADIO_TOKEN_MEDICAL ":m"
|
||||
|
||||
#define RADIO_CHANNEL_SUPPLY "Supply"
|
||||
#define RADIO_KEY_SUPPLY "u"
|
||||
#define RADIO_TOKEN_SUPPLY ":u"
|
||||
|
||||
#define RADIO_CHANNEL_SERVICE "Service"
|
||||
#define RADIO_KEY_SERVICE "v"
|
||||
#define RADIO_TOKEN_SERVICE ":v"
|
||||
|
||||
#define RADIO_CHANNEL_AI_PRIVATE "AI Private"
|
||||
#define RADIO_KEY_AI_PRIVATE "o"
|
||||
#define RADIO_TOKEN_AI_PRIVATE ":o"
|
||||
|
||||
|
||||
#define RADIO_CHANNEL_SYNDICATE "Syndicate"
|
||||
#define RADIO_KEY_SYNDICATE "t"
|
||||
#define RADIO_TOKEN_SYNDICATE ":t"
|
||||
|
||||
#define RADIO_CHANNEL_CENTCOM "CentCom"
|
||||
#define RADIO_KEY_CENTCOM "y"
|
||||
#define RADIO_TOKEN_CENTCOM ":y"
|
||||
|
||||
#define RADIO_CHANNEL_CTF_RED "Red Team"
|
||||
#define RADIO_CHANNEL_CTF_BLUE "Blue Team"
|
||||
|
||||
|
||||
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
|
||||
// Frequencies are always odd numbers and range from 1201 to 1599.
|
||||
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
#define NOBLIUM_FORMATION_ENERGY 2e9 //1 Mole of Noblium takes the planck energy to condense.
|
||||
//Research point amounts
|
||||
#define NOBLIUM_RESEARCH_AMOUNT 1000
|
||||
#define BZ_RESEARCH_AMOUNT 150
|
||||
#define BZ_RESEARCH_SCALE 4
|
||||
#define BZ_RESEARCH_MAX_AMOUNT 400
|
||||
#define MIASMA_RESEARCH_AMOUNT 160
|
||||
#define STIMULUM_RESEARCH_AMOUNT 50
|
||||
//Plasma fusion properties
|
||||
|
||||
@@ -6,17 +6,43 @@
|
||||
//Message modes. Each one defines a radio channel, more or less.
|
||||
#define MODE_HEADSET "headset"
|
||||
#define MODE_ROBOT "robot"
|
||||
|
||||
#define MODE_R_HAND "right hand"
|
||||
#define MODE_KEY_R_HAND "r"
|
||||
|
||||
#define MODE_L_HAND "left hand"
|
||||
#define MODE_KEY_L_HAND "l"
|
||||
|
||||
#define MODE_INTERCOM "intercom"
|
||||
#define MODE_KEY_INTERCOM "i"
|
||||
|
||||
#define MODE_BINARY "binary"
|
||||
#define MODE_KEY_BINARY "b"
|
||||
#define MODE_TOKEN_BINARY ":b"
|
||||
|
||||
#define MODE_WHISPER "whisper"
|
||||
#define MODE_WHISPER_CRIT "whispercrit"
|
||||
|
||||
#define MODE_DEPARTMENT "department"
|
||||
#define MODE_KEY_DEPARTMENT "h"
|
||||
#define MODE_TOKEN_DEPARTMENT ":h"
|
||||
|
||||
#define MODE_ADMIN "admin"
|
||||
#define MODE_KEY_ADMIN "p"
|
||||
|
||||
#define MODE_DEADMIN "deadmin"
|
||||
#define MODE_KEY_DEADMIN "d"
|
||||
|
||||
#define MODE_ALIEN "alientalk"
|
||||
#define MODE_HOLOPAD "holopad"
|
||||
|
||||
#define MODE_CHANGELING "changeling"
|
||||
#define MODE_KEY_CHANGELING "g"
|
||||
#define MODE_TOKEN_CHANGELING ":g"
|
||||
|
||||
#define MODE_VOCALCORDS "cords"
|
||||
#define MODE_KEY_VOCALCORDS "x"
|
||||
|
||||
#define MODE_MONKEY "monkeyhive"
|
||||
|
||||
//Spans. Robot speech, italics, etc. Applied in compose_message().
|
||||
|
||||
@@ -93,6 +93,7 @@
|
||||
#define FIRE_PRIORITY_SERVER_MAINT 10
|
||||
#define FIRE_PRIORITY_RESEARCH 10
|
||||
#define FIRE_PRIORITY_VIS 10
|
||||
#define FIRE_PRIORITY_VORE 10
|
||||
#define FIRE_PRIORITY_GARBAGE 15
|
||||
#define FIRE_PRIORITY_WET_FLOORS 20
|
||||
#define FIRE_PRIORITY_AIR 20
|
||||
|
||||
@@ -130,6 +130,7 @@
|
||||
#define TRAIT_HEAVY_SLEEPER "heavy_sleeper"
|
||||
#define TRAIT_NIGHT_VISION "night_vision"
|
||||
#define TRAIT_LIGHT_STEP "light_step"
|
||||
#define TRAIT_SILENT_STEP "silent_step"
|
||||
#define TRAIT_SPEEDY_STEP "speedy_step"
|
||||
#define TRAIT_SPIRITUAL "spiritual"
|
||||
#define TRAIT_VORACIOUS "voracious"
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
Current specifications:
|
||||
|
||||
Donator groups in __DEFINES/donator_groupings.dm, config entries in controllers/configuration/entries/donator.dm
|
||||
|
||||
3 groups, Tier 1/2/3
|
||||
Each tier includes the one before it (ascending)
|
||||
For fast lookups, this is generated using regenerate_donator_grouping_list()
|
||||
|
||||
*/
|
||||
|
||||
/proc/is_donator_group(ckey, group)
|
||||
ckey = ckey(ckey) //make sure it's ckey'd.
|
||||
var/list/L = GLOB.donators_by_group[group]
|
||||
return L && L.Find(ckey)
|
||||
|
||||
/proc/regenerate_donator_grouping_list()
|
||||
GLOB.donators_by_group = list() //reinit everything
|
||||
var/list/donator_list = GLOB.donators_by_group //cache
|
||||
var/list/tier_1 = TIER_1_DONATORS
|
||||
donator_list[DONATOR_GROUP_TIER_1] = tier_1.Copy() //The .Copy() is to "decouple"/make a new list, rather than letting the global list impact the config list.
|
||||
var/list/tier_2 = tier_1 + TIER_2_DONATORS //Using + on lists implies making new lists, so we don't need to manually Copy().
|
||||
donator_list[DONATOR_GROUP_TIER_2] = tier_2
|
||||
var/list/tier_3 = tier_2 + TIER_3_DONATORS
|
||||
donator_list[DONATOR_GROUP_TIER_3] = tier_3
|
||||
@@ -189,6 +189,7 @@
|
||||
"breasts_size" = pick(GLOB.breasts_size_list),
|
||||
"breasts_shape" = "Pair",
|
||||
"breasts_fluid" = "milk",
|
||||
"breasts_producing" = FALSE,
|
||||
"has_vag" = FALSE,
|
||||
"vag_shape" = pick(GLOB.vagina_shapes_list),
|
||||
"vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
|
||||
|
||||
@@ -281,6 +281,17 @@
|
||||
var/statspage = CONFIG_GET(string/roundstatsurl)
|
||||
var/info = statspage ? "<a href='?action=openLink&link=[url_encode(statspage)][GLOB.round_id]'>[GLOB.round_id]</a>" : GLOB.round_id
|
||||
parts += "[GLOB.TAB]Round ID: <b>[info]</b>"
|
||||
|
||||
var/list/voting_results = SSvote.stored_gamemode_votes
|
||||
|
||||
if(length(voting_results))
|
||||
parts += "[GLOB.TAB]Voting: "
|
||||
var/total_score = 0
|
||||
for(var/choice in voting_results)
|
||||
var/score = voting_results[choice]
|
||||
total_score += score
|
||||
parts += "[GLOB.TAB][GLOB.TAB][choice]: [score]"
|
||||
|
||||
parts += "[GLOB.TAB]Shift Duration: <B>[DisplayTimeText(world.time - SSticker.round_start_time)]</B>"
|
||||
parts += "[GLOB.TAB]Station Integrity: <B>[mode.station_was_nuked ? "<span class='redtext'>Destroyed</span>" : "[popcount["station_integrity"]]%"]</B>"
|
||||
var/total_players = GLOB.joined_player_list.len
|
||||
|
||||
@@ -1487,6 +1487,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
/obj/item/reagent_containers/food/snacks/grown/nettle, // base type
|
||||
/obj/item/reagent_containers/food/snacks/deepfryholder,
|
||||
/obj/item/reagent_containers/food/snacks/grown/shell,
|
||||
/obj/item/reagent_containers/food/snacks/clothing,
|
||||
/obj/item/reagent_containers/food/snacks/store/bread
|
||||
)
|
||||
blocked |= typesof(/obj/item/reagent_containers/food/snacks/customizable)
|
||||
|
||||
@@ -136,7 +136,7 @@ GLOBAL_LIST_INIT(bitfields, list(
|
||||
"LAVAPROTECT" = LAVAPROTECT,
|
||||
"STOPSPRESSUREDAMAGE" = STOPSPRESSUREDAMAGE,
|
||||
"BLOCK_GAS_SMOKE_EFFECT" = BLOCK_GAS_SMOKE_EFFECT,
|
||||
"MASKINTERNALS" = MASKINTERNALS,
|
||||
"ALLOWINTERNALS" = ALLOWINTERNALS,
|
||||
"NOSLIP" = NOSLIP,
|
||||
"THICKMATERIAL" = THICKMATERIAL,
|
||||
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
|
||||
|
||||
@@ -100,6 +100,11 @@ GLOBAL_LIST_INIT(security_depts_prefs, list(SEC_DEPT_RANDOM, SEC_DEPT_NONE, SEC_
|
||||
#define DDUFFELBAG "Department Duffel Bag"
|
||||
GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFELBAG, GBACKPACK, GSATCHEL, GDUFFELBAG, LSATCHEL))
|
||||
|
||||
//Suit/Skirt
|
||||
#define PREF_SUIT "Jumpsuit"
|
||||
#define PREF_SKIRT "Jumpskirt"
|
||||
GLOBAL_LIST_INIT(jumpsuitlist, list(PREF_SUIT, PREF_SKIRT))
|
||||
|
||||
//Uplink spawn loc
|
||||
#define UPLINK_PDA "PDA"
|
||||
#define UPLINK_RADIO "Radio"
|
||||
|
||||
@@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/paper/crumpled = 1,
|
||||
/obj/item/pen = 1,
|
||||
/obj/item/reagent_containers/spray/pestspray = 1,
|
||||
/obj/item/reagent_containers/glass/rag = 3,
|
||||
/obj/item/reagent_containers/rag = 3,
|
||||
/obj/item/stock_parts/cell = 3,
|
||||
/obj/item/storage/belt/utility = 2,
|
||||
/obj/item/storage/box = 2,
|
||||
@@ -107,7 +107,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/storage/toolbox/artistic = 2,
|
||||
/obj/item/toy/eightball = 1,
|
||||
/obj/item/reagent_containers/pill/floorpill = 1,
|
||||
/obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
|
||||
/obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2,
|
||||
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
|
||||
/obj/item/storage/pill_bottle/penis_enlargement = 2,
|
||||
/obj/item/storage/pill_bottle/breast_enlargement = 2,
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
GLOBAL_LIST_EMPTY(donators_by_group) //group id = donator list of ckeys
|
||||
@@ -67,7 +67,7 @@
|
||||
/mob/proc/ClickOn( atom/A, params )
|
||||
if(world.time <= next_click)
|
||||
return
|
||||
next_click = world.time + 1
|
||||
next_click = world.time + world.tick_lag
|
||||
|
||||
if(check_click_intercept(params,A))
|
||||
return
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
#define ui_drop_throw "EAST-1:28,SOUTH+1:7"
|
||||
#define ui_pull_resist "EAST-2:26,SOUTH+1:7"
|
||||
#define ui_movi "EAST-2:26,SOUTH:5"
|
||||
#define ui_sprintbufferloc "EAST-2:26,SOUTH:18"
|
||||
#define ui_acti "EAST-3:24,SOUTH:5"
|
||||
#define ui_zonesel "EAST-1:28,SOUTH:5"
|
||||
#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
|
||||
|
||||
@@ -134,6 +134,13 @@
|
||||
static_inventory += using
|
||||
//END OF CITADEL CHANGES
|
||||
|
||||
//same as above but buffer.
|
||||
using = new /obj/screen/sprint_buffer
|
||||
using.screen_loc = ui_sprintbufferloc
|
||||
sprint_buffer = using
|
||||
static_inventory += using
|
||||
|
||||
|
||||
using = new /obj/screen/drop()
|
||||
using.icon = ui_style
|
||||
using.screen_loc = ui_drop_throw
|
||||
|
||||
@@ -290,16 +290,19 @@
|
||||
icon_state = "internal0"
|
||||
else
|
||||
if(!C.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
|
||||
if(!istype(C.wear_mask, /obj/item/clothing/mask))
|
||||
var/obj/item/clothing/check
|
||||
var/internals = FALSE
|
||||
|
||||
for(check in GET_INTERNAL_SLOTS(C))
|
||||
if(istype(check, /obj/item/clothing/mask))
|
||||
var/obj/item/clothing/mask/M = check
|
||||
if(M.mask_adjusted)
|
||||
M.adjustmask(C)
|
||||
if(CHECK_BITFIELD(check.clothing_flags, ALLOWINTERNALS))
|
||||
internals = TRUE
|
||||
if(!internals)
|
||||
to_chat(C, "<span class='warning'>You are not wearing an internals mask!</span>")
|
||||
return 1
|
||||
else
|
||||
var/obj/item/clothing/mask/M = C.wear_mask
|
||||
if(M.mask_adjusted) // if mask on face but pushed down
|
||||
M.adjustmask(C) // adjust it back
|
||||
if( !(M.clothing_flags & MASKINTERNALS) )
|
||||
to_chat(C, "<span class='warning'>You are not wearing an internals mask!</span>")
|
||||
return
|
||||
return
|
||||
|
||||
var/obj/item/I = C.is_holding_item_of_type(/obj/item/tank)
|
||||
if(I)
|
||||
|
||||
@@ -171,3 +171,7 @@
|
||||
if(prob(2))
|
||||
playsound(src, 'sound/weapons/dink.ogg', 30, 1)
|
||||
return 1
|
||||
|
||||
/obj/item/proc/getweight()
|
||||
return total_mass || w_class * 1.25
|
||||
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
var/abstract_type = /datum/config_entry //do not instantiate if type matches this
|
||||
|
||||
var/vv_VAS = TRUE //Force validate and set on VV. VAS proccall guard will run regardless.
|
||||
var/postload_required = FALSE //requires running OnPostload()
|
||||
|
||||
var/dupes_allowed = FALSE
|
||||
|
||||
@@ -72,6 +73,9 @@
|
||||
/datum/config_entry/proc/DeprecationUpdate(value)
|
||||
return
|
||||
|
||||
/datum/config_entry/proc/OnPostload()
|
||||
return
|
||||
|
||||
/datum/config_entry/string
|
||||
config_entry_value = ""
|
||||
abstract_type = /datum/config_entry/string
|
||||
@@ -80,7 +84,7 @@
|
||||
/datum/config_entry/string/vv_edit_var(var_name, var_value)
|
||||
return var_name != "auto_trim" && ..()
|
||||
|
||||
/datum/config_entry/string/ValidateAndSet(str_val)
|
||||
/datum/config_entry/string/ValidateAndSet(str_val, during_load)
|
||||
if(!VASProcCallGuard(str_val))
|
||||
return FALSE
|
||||
config_entry_value = auto_trim ? trim(str_val) : str_val
|
||||
|
||||
@@ -101,6 +101,7 @@
|
||||
log_config("Loading config file [filename]...")
|
||||
var/list/lines = world.file2list("[directory]/[filename]")
|
||||
var/list/_entries = entries
|
||||
var/list/postload_required = list()
|
||||
for(var/L in lines)
|
||||
L = trim(L)
|
||||
if(!L)
|
||||
@@ -157,18 +158,24 @@
|
||||
else
|
||||
warning("[new_ver.type] is deprecated but gave no proper return for DeprecationUpdate()")
|
||||
|
||||
var/validated = E.ValidateAndSet(value)
|
||||
var/validated = E.ValidateAndSet(value, TRUE)
|
||||
if(!validated)
|
||||
log_config("Failed to validate setting \"[value]\" for [entry]")
|
||||
else
|
||||
if(E.modified && !E.dupes_allowed)
|
||||
log_config("Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.")
|
||||
if(E.postload_required)
|
||||
postload_required[E] = TRUE
|
||||
|
||||
E.resident_file = filename
|
||||
|
||||
if(validated)
|
||||
E.modified = TRUE
|
||||
|
||||
for(var/i in postload_required)
|
||||
var/datum/config_entry/E = i
|
||||
E.OnPostload()
|
||||
|
||||
++.
|
||||
|
||||
/datum/controller/configuration/can_vv_get(var_name)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
/datum/config_entry/keyed_list/donator_group
|
||||
key_mode = KEY_MODE_TEXT
|
||||
value_mode = VALUE_MODE_FLAG
|
||||
abstract_type = /datum/config_entry/keyed_list/donator_group
|
||||
|
||||
//If we're in the middle of a config load, only do the regeneration afterwards to prevent this from wasting a massive amount of CPU for list regenerations.
|
||||
/datum/config_entry/keyed_list/donator_group/ValidateAndSet(str_val, during_load)
|
||||
. = ..()
|
||||
if(. && during_load)
|
||||
regenerate_donator_grouping_list()
|
||||
|
||||
/datum/config_entry/keyed_list/donator_group/OnPostload()
|
||||
. = ..()
|
||||
regenerate_donator_grouping_list()
|
||||
|
||||
//This is kinda weird in that the config entries are defined here but all the handling/calculations are in __HELPERS/donator_groupings.dm
|
||||
|
||||
/datum/config_entry/keyed_list/donator_group/tier_1_donators
|
||||
|
||||
/datum/config_entry/keyed_list/donator_group/tier_2_donators
|
||||
|
||||
/datum/config_entry/keyed_list/donator_group/tier_3_donators
|
||||
@@ -23,7 +23,7 @@ SUBSYSTEM_DEF(input)
|
||||
// This is for when macro sets are eventualy datumized
|
||||
/datum/controller/subsystem/input/proc/setup_default_macro_sets()
|
||||
var/list/static/default_macro_sets
|
||||
|
||||
|
||||
if(default_macro_sets)
|
||||
macro_sets = default_macro_sets
|
||||
return
|
||||
@@ -49,6 +49,7 @@ SUBSYSTEM_DEF(input)
|
||||
"old_hotkeys" = list(
|
||||
"Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"",
|
||||
"O" = "ooc",
|
||||
"L" = "looc",
|
||||
"T" = "say",
|
||||
"M" = "me",
|
||||
"Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs
|
||||
|
||||
@@ -437,7 +437,7 @@ SUBSYSTEM_DEF(job)
|
||||
if(job.custom_spawn_text)
|
||||
to_chat(M, "<b>[job.custom_spawn_text]</b>")
|
||||
if(CONFIG_GET(number/minimal_access_threshold))
|
||||
to_chat(M, "<FONT color='blue'><B>As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.</B></font>")
|
||||
to_chat(M, "<span class='notice'><B>As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.</B></span>")
|
||||
|
||||
if(job && H)
|
||||
if(job.dresscodecompliant)// CIT CHANGE - dress code compliance
|
||||
|
||||
@@ -9,6 +9,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
runlevels = RUNLEVEL_GAME
|
||||
|
||||
var/list/quirks = list() //Assoc. list of all roundstart quirk datum types; "name" = /path/
|
||||
var/list/quirk_names_by_path = list()
|
||||
var/list/quirk_points = list() //Assoc. list of quirk names and their "point cost"; positive numbers are good traits, and negative ones are bad
|
||||
var/list/quirk_objects = list() //A list of all quirk objects in the game, since some may process
|
||||
|
||||
@@ -22,11 +23,68 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
var/datum/quirk/T = V
|
||||
quirks[initial(T.name)] = T
|
||||
quirk_points[initial(T.name)] = initial(T.value)
|
||||
quirk_names_by_path[T] = initial(T.name)
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects)
|
||||
/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects, roundstart = FALSE, datum/job/job, silent = FALSE, mob/to_chat_target)
|
||||
GenerateQuirks(cli)
|
||||
for(var/V in cli.prefs.character_quirks)
|
||||
var/list/quirks = cli.prefs.character_quirks.Copy()
|
||||
var/list/cut
|
||||
if(job && job.blacklisted_quirks)
|
||||
cut = filter_quirks(quirks, job)
|
||||
for(var/V in quirks)
|
||||
user.add_quirk(V, spawn_effects)
|
||||
if(!silent && LAZYLEN(cut))
|
||||
to_chat(to_chat_target || user, "<span class='boldwarning'>All of your non-neutral character quirks have been cut due to these quirks conflicting with your job assignment: [english_list(cut)].</span>")
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name)
|
||||
return quirks[name]
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/quirk_points_by_name(name)
|
||||
return quirk_points[name]
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/quirk_name_by_path(path)
|
||||
return quirk_names_by_path[path]
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/total_points(list/quirk_names)
|
||||
. = 0
|
||||
for(var/i in quirk_names)
|
||||
. += quirk_points_by_name(i)
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/filter_quirks(list/quirks, datum/job/job)
|
||||
var/list/cut = list()
|
||||
var/list/banned_names = list()
|
||||
for(var/i in job.blacklisted_quirks)
|
||||
var/name = quirk_name_by_path(i)
|
||||
if(name)
|
||||
banned_names += name
|
||||
var/list/blacklisted = quirks & banned_names
|
||||
if(length(blacklisted))
|
||||
for(var/i in blacklisted)
|
||||
quirks -= i
|
||||
cut += i
|
||||
|
||||
/* //Code to automatically reduce positive quirks until balance is even.
|
||||
var/points_used = total_points(quirks)
|
||||
if(points_used > 0)
|
||||
//they owe us points, let's collect.
|
||||
for(var/i in quirks)
|
||||
var/points = quirk_points_by_name(i)
|
||||
if(points > 0)
|
||||
cut += i
|
||||
quirks -= i
|
||||
points_used -= points
|
||||
if(points_used <= 0)
|
||||
break
|
||||
*/
|
||||
|
||||
//Nah, let's null all non-neutrals out.
|
||||
if(cut.len)
|
||||
for(var/i in quirks)
|
||||
if(quirk_points_by_name(i) != 0)
|
||||
//cut += i -- Commented out: Only show the ones that triggered the quirk purge.
|
||||
quirks -= i
|
||||
|
||||
return cut
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/GenerateQuirks(client/user)
|
||||
if(user.prefs.character_quirks.len)
|
||||
|
||||
@@ -229,7 +229,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
if(GLOB.secret_force_mode != "secret")
|
||||
var/datum/game_mode/smode = config.pick_mode(GLOB.secret_force_mode)
|
||||
if(!smode.can_start())
|
||||
message_admins("\blue Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.")
|
||||
message_admins("<span class='notice'>Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.</span>")
|
||||
else
|
||||
mode = smode
|
||||
|
||||
@@ -302,14 +302,14 @@ SUBSYSTEM_DEF(ticker)
|
||||
round_start_time = world.time
|
||||
SSdbcore.SetRoundStart()
|
||||
|
||||
to_chat(world, "<FONT color='blue'><B>Welcome to [station_name()], enjoy your stay!</B></FONT>")
|
||||
to_chat(world, "<span class='notice'><B>Welcome to [station_name()], enjoy your stay!</B></span>")
|
||||
SEND_SOUND(world, sound('sound/ai/welcome.ogg'))
|
||||
|
||||
current_state = GAME_STATE_PLAYING
|
||||
Master.SetRunLevel(RUNLEVEL_GAME)
|
||||
|
||||
if(SSevents.holidays)
|
||||
to_chat(world, "<font color='blue'>and...</font>")
|
||||
to_chat(world, "<span class='notice'>and...</span>")
|
||||
for(var/holidayname in SSevents.holidays)
|
||||
var/datum/holiday/holiday = SSevents.holidays[holidayname]
|
||||
to_chat(world, "<h4>[holiday.greet()]</h4>")
|
||||
@@ -385,7 +385,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
if(player.mind.assigned_role != player.mind.special_role)
|
||||
SSjob.EquipRank(N, player.mind.assigned_role, 0)
|
||||
if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character))
|
||||
SSquirks.AssignQuirks(N.new_character, N.client, TRUE)
|
||||
SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE, N)
|
||||
CHECK_TICK
|
||||
if(captainless)
|
||||
for(var/mob/dead/new_player/N in GLOB.player_list)
|
||||
@@ -425,7 +425,7 @@ SUBSYSTEM_DEF(ticker)
|
||||
m = pick(memetips)
|
||||
|
||||
if(m)
|
||||
to_chat(world, "<font color='purple'><b>Tip of the round: </b>[html_encode(m)]</font>")
|
||||
to_chat(world, "<span class='purple'><b>Tip of the round: </b>[html_encode(m)]</span>")
|
||||
|
||||
/datum/controller/subsystem/ticker/proc/check_queue()
|
||||
var/hpc = CONFIG_GET(number/hard_popcap)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
SUBSYSTEM_DEF(bellies)
|
||||
name = "Bellies"
|
||||
priority = 5
|
||||
priority = FIRE_PRIORITY_VORE
|
||||
wait = 1 SECONDS
|
||||
flags = SS_KEEP_TIMING|SS_NO_INIT
|
||||
runlevels = RUNLEVEL_GAME|RUNLEVEL_POSTGAME
|
||||
|
||||
@@ -18,6 +18,8 @@ SUBSYSTEM_DEF(vote)
|
||||
|
||||
var/obfuscated = FALSE//CIT CHANGE - adds obfuscated/admin-only votes
|
||||
|
||||
var/list/stored_gamemode_votes = list() //Basically the last voted gamemode is stored here for end-of-round use.
|
||||
|
||||
/datum/controller/subsystem/vote/fire() //called by master_controller
|
||||
if(mode)
|
||||
time_remaining = round((started_time + CONFIG_GET(number/vote_period) - world.time)/10)
|
||||
@@ -85,15 +87,20 @@ SUBSYSTEM_DEF(vote)
|
||||
/datum/controller/subsystem/vote/proc/announce_result()
|
||||
var/list/winners = get_result()
|
||||
var/text
|
||||
var/was_roundtype_vote = mode == "roundtype"
|
||||
if(winners.len > 0)
|
||||
if(question)
|
||||
text += "<b>[question]</b>"
|
||||
else
|
||||
text += "<b>[capitalize(mode)] Vote</b>"
|
||||
if(was_roundtype_vote)
|
||||
stored_gamemode_votes = list()
|
||||
for(var/i=1,i<=choices.len,i++)
|
||||
var/votes = choices[choices[i]]
|
||||
if(!votes)
|
||||
votes = 0
|
||||
if(was_roundtype_vote)
|
||||
stored_gamemode_votes[choices[i]] = votes
|
||||
text += "\n<b>[choices[i]]:</b> [obfuscated ? "???" : votes]" //CIT CHANGE - adds obfuscated votes
|
||||
if(mode != "custom")
|
||||
if(winners.len > 1 && !obfuscated) //CIT CHANGE - adds obfuscated votes
|
||||
|
||||
+18
-11
@@ -494,6 +494,7 @@
|
||||
else
|
||||
to_chat(owner, "<span class='cultitalic'>Your hands are full!</span>")
|
||||
|
||||
//MGS Box
|
||||
/datum/action/item_action/agent_box
|
||||
name = "Deploy Box"
|
||||
desc = "Find inner peace, here, in the box."
|
||||
@@ -502,21 +503,27 @@
|
||||
icon_icon = 'icons/mob/actions/actions_items.dmi'
|
||||
button_icon_state = "deploy_box"
|
||||
var/cooldown = 0
|
||||
var/obj/structure/closet/cardboard/agent/box
|
||||
var/boxtype = /obj/structure/closet/cardboard/agent
|
||||
|
||||
//Handles open and closing the box
|
||||
/datum/action/item_action/agent_box/Trigger()
|
||||
if(!..())
|
||||
. = ..()
|
||||
if(!.)
|
||||
return FALSE
|
||||
if(QDELETED(box))
|
||||
if(cooldown < world.time - 100)
|
||||
box = new(owner.drop_location())
|
||||
owner.forceMove(box)
|
||||
cooldown = world.time
|
||||
owner.playsound_local(box, 'sound/misc/box_deploy.ogg', 50, TRUE)
|
||||
else
|
||||
owner.forceMove(box.drop_location())
|
||||
if(istype(owner.loc, /obj/structure/closet/cardboard/agent))
|
||||
var/obj/structure/closet/cardboard/agent/box = owner.loc
|
||||
owner.playsound_local(box, 'sound/misc/box_deploy.ogg', 50, TRUE)
|
||||
box.open()
|
||||
return
|
||||
//Box closing from here on out.
|
||||
if(!isturf(owner.loc)) //Don't let the player use this to escape mechs/welded closets.
|
||||
to_chat(owner, "<span class = 'notice'>You need more space to activate this implant.</span>")
|
||||
return
|
||||
if(cooldown < world.time - 100)
|
||||
var/box = new boxtype(owner.drop_location())
|
||||
owner.forceMove(box)
|
||||
cooldown = world.time
|
||||
owner.playsound_local(box, 'sound/misc/box_deploy.ogg', 50, TRUE)
|
||||
QDEL_NULL(box)
|
||||
|
||||
//Preset for spells
|
||||
/datum/action/spell_action
|
||||
|
||||
@@ -14,15 +14,18 @@
|
||||
var/turf/open/T = get_turf(parent)
|
||||
if(!istype(T))
|
||||
return
|
||||
|
||||
|
||||
var/mob/living/LM = parent
|
||||
var/v = volume
|
||||
var/e = e_range
|
||||
if(!T.footstep || LM.buckled || LM.lying || !LM.canmove || LM.resting || LM.buckled || LM.throwing || LM.movement_type & (VENTCRAWLING | FLYING))
|
||||
if (LM.lying && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying
|
||||
if (LM.lying && !LM.buckled && !(!T.footstep || LM.movement_type & (VENTCRAWLING | FLYING))) //play crawling sound if we're lying
|
||||
playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v)
|
||||
return
|
||||
|
||||
|
||||
if(HAS_TRAIT(LM, TRAIT_SILENT_STEP))
|
||||
return
|
||||
|
||||
if(iscarbon(LM))
|
||||
var/mob/living/carbon/C = LM
|
||||
if(!C.get_bodypart(BODY_ZONE_L_LEG) && !C.get_bodypart(BODY_ZONE_R_LEG))
|
||||
@@ -31,18 +34,18 @@
|
||||
v /= 2
|
||||
e -= 5
|
||||
steps++
|
||||
|
||||
|
||||
if(steps >= 3)
|
||||
steps = 0
|
||||
|
||||
|
||||
else
|
||||
return
|
||||
|
||||
|
||||
if(prob(80) && !LM.has_gravity(T)) // don't need to step as often when you hop around
|
||||
return
|
||||
|
||||
|
||||
//begin playsound shenanigans//
|
||||
|
||||
|
||||
//for barefooted non-clawed mobs like monkeys
|
||||
if(isbarefoot(LM))
|
||||
playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]),
|
||||
@@ -50,19 +53,19 @@
|
||||
TRUE,
|
||||
GLOB.barefootstep[T.barefootstep][3] + e)
|
||||
return
|
||||
|
||||
|
||||
//for xenomorphs, dogs, and other clawed mobs
|
||||
if(isclawfoot(LM))
|
||||
if(isalienadult(LM)) //xenos are stealthy and get quieter footsteps
|
||||
v /= 3
|
||||
e -= 5
|
||||
|
||||
|
||||
playsound(T, pick(GLOB.clawfootstep[T.clawfootstep][1]),
|
||||
GLOB.clawfootstep[T.clawfootstep][2] * v,
|
||||
TRUE,
|
||||
GLOB.clawfootstep[T.clawfootstep][3] + e)
|
||||
return
|
||||
|
||||
|
||||
//for megafauna and other large and imtimidating mobs such as the bloodminer
|
||||
if(isheavyfoot(LM))
|
||||
playsound(T, pick(GLOB.heavyfootstep[T.heavyfootstep][1]),
|
||||
@@ -70,12 +73,12 @@
|
||||
TRUE,
|
||||
GLOB.heavyfootstep[T.heavyfootstep][3] + e)
|
||||
return
|
||||
|
||||
|
||||
//for slimes
|
||||
if(isslime(LM))
|
||||
if(isslime(LM))
|
||||
playsound(T, 'sound/effects/footstep/slime1.ogg', 15 * v)
|
||||
return
|
||||
|
||||
|
||||
//for (simple) humanoid mobs (clowns, russians, pirates, etc.)
|
||||
if(isshoefoot(LM))
|
||||
if(!ishuman(LM))
|
||||
@@ -87,17 +90,17 @@
|
||||
if(ishuman(LM)) //for proper humans, they're special
|
||||
var/mob/living/carbon/human/H = LM
|
||||
var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET))
|
||||
|
||||
|
||||
if (H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle") //are we a naga or tentacle taur creature
|
||||
playsound(T, 'sound/effects/footstep/crawl1.ogg', 15 * v)
|
||||
return
|
||||
|
||||
|
||||
if(H.shoes || feetCover) //are we wearing shoes
|
||||
playsound(T, pick(GLOB.footstep[T.footstep][1]),
|
||||
GLOB.footstep[T.footstep][2] * v,
|
||||
TRUE,
|
||||
GLOB.footstep[T.footstep][3] + e)
|
||||
|
||||
|
||||
if((!H.shoes && !feetCover)) //are we NOT wearing shoes
|
||||
playsound(T, pick(GLOB.barefootstep[T.barefootstep][1]),
|
||||
GLOB.barefootstep[T.barefootstep][2] * v,
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
RegisterSignal(parent, COMSIG_NANITE_ADD_PROGRAM, .proc/add_program)
|
||||
RegisterSignal(parent, COMSIG_NANITE_SCAN, .proc/nanite_scan)
|
||||
RegisterSignal(parent, COMSIG_NANITE_SYNC, .proc/sync)
|
||||
RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp)
|
||||
|
||||
if(isliving(parent))
|
||||
RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, .proc/on_emp)
|
||||
RegisterSignal(parent, COMSIG_MOB_DEATH, .proc/on_death)
|
||||
RegisterSignal(parent, COMSIG_MOB_ALLOWED, .proc/check_access)
|
||||
RegisterSignal(parent, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_shock)
|
||||
@@ -169,23 +169,19 @@
|
||||
holder.icon_state = "nanites[nanite_percent]"
|
||||
|
||||
/datum/component/nanites/proc/on_emp(datum/source, severity)
|
||||
nanite_volume *= (rand(0.60, 0.90)) //Lose 10-40% of nanites
|
||||
adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume
|
||||
if(prob(40/severity))
|
||||
cloud_id = 0
|
||||
adjust_nanites(null, -(nanite_volume * 0.3 + 50)) //Lose 30% variable and 50 flat nanite volume.
|
||||
for(var/X in programs)
|
||||
var/datum/nanite_program/NP = X
|
||||
NP.on_emp(severity)
|
||||
|
||||
/datum/component/nanites/proc/on_shock(datum/source, shock_damage)
|
||||
nanite_volume *= (rand(0.45, 0.80)) //Lose 20-55% of nanites
|
||||
adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume
|
||||
adjust_nanites(null, -(nanite_volume * (shock_damage * 0.005) + shock_damage)) //0.5% of shock damage (@ 50 damage it'd drain 25%) + shock damage flat volume
|
||||
for(var/X in programs)
|
||||
var/datum/nanite_program/NP = X
|
||||
NP.on_shock(shock_damage)
|
||||
|
||||
/datum/component/nanites/proc/on_minor_shock(datum/source)
|
||||
adjust_nanites(null, -(rand(5, 15))) //Lose 5-15 flat nanite volume
|
||||
adjust_nanites(null, -25)
|
||||
for(var/X in programs)
|
||||
var/datum/nanite_program/NP = X
|
||||
NP.on_minor_shock()
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
C.stuttering = 20
|
||||
if((!istype(H.dna.species, /datum/species/skeleton)) && (!istype(H.dna.species, /datum/species/golem)) && (!istype(H.dna.species, /datum/species/android)) && (!istype(H.dna.species, /datum/species/jelly)))
|
||||
C.adjustStaminaLoss(25) //boneless humanoids don't lose the will to live
|
||||
to_chat(C, "<font color='red' size='4'><B>DOOT</B></span>")
|
||||
to_chat(C, "<font color='red' size='4'><B>DOOT</B></font>")
|
||||
spectral_change(H)
|
||||
|
||||
else //the sound will spook monkeys.
|
||||
|
||||
@@ -36,3 +36,4 @@
|
||||
/datum/component/storage/concrete/emergency/proc/unlock_me(datum/source)
|
||||
if(locked)
|
||||
set_locked(source, FALSE)
|
||||
return TRUE
|
||||
|
||||
@@ -1351,8 +1351,8 @@
|
||||
|
||||
if(amount != 0)
|
||||
log_admin("[key_name(usr)] dealt [amount] amount of [Text] damage to [L] ")
|
||||
var/msg = "<span class='notice'>[key_name(usr)] dealt [amount] amount of [Text] damage to [L] </span>"
|
||||
message_admins(msg)
|
||||
var/msg = "[key_name(usr)] dealt [amount] amount of [Text] damage to [L] </span>"
|
||||
message_admins("<span class='notice'>[msg]</span>")
|
||||
admin_ticket_log(L, msg)
|
||||
vv_update_display(L, Text, "[newamt]")
|
||||
else if(href_list["copyoutfit"])
|
||||
|
||||
@@ -31,13 +31,43 @@
|
||||
var/id = ""
|
||||
var/processing = FALSE
|
||||
var/mutable = TRUE //set to FALSE to prevent most in-game methods of altering the disease via virology
|
||||
var/oldres
|
||||
|
||||
// The order goes from easy to cure to hard to cure.
|
||||
var/static/list/advance_cures = list(
|
||||
"sodiumchloride", "sugar", "orangejuice",
|
||||
"spaceacillin", "salglu_solution", "ethanol",
|
||||
"leporazine", "synaptizine", "lipolicide",
|
||||
"silver", "gold"
|
||||
list( // level 1
|
||||
"copper", "silver", "iodine", "iron", "carbon"
|
||||
),
|
||||
list( // level 2
|
||||
"potassium", "ethanol", "lithium", "silicon", "bromine"
|
||||
),
|
||||
list( // level 3
|
||||
"sodiumchloride", "sugar", "orangejuice", "tomatojuice", "milk"
|
||||
),
|
||||
list( //level 4
|
||||
"spaceacillin", "salglu_solution", "epinephrine", "charcoal"
|
||||
),
|
||||
list( //level 5
|
||||
"oil", "synaptizine", "mannitol", "space_drugs", "cryptobiolin"
|
||||
),
|
||||
list( // level 6
|
||||
"phenol", "inacusiate", "oculine", "antihol"
|
||||
),
|
||||
list( // level 7
|
||||
"leporazine", "mindbreaker", "corazone"
|
||||
),
|
||||
list( // level 8
|
||||
"pax", "happiness", "ephedrine"
|
||||
),
|
||||
list( // level 9
|
||||
"lipolicide", "sal_acid"
|
||||
),
|
||||
list( // level 10
|
||||
"haloperidol", "aranesp", "diphenhydramine"
|
||||
),
|
||||
list( //level 11
|
||||
"modafinil", "anacea"
|
||||
)
|
||||
)
|
||||
|
||||
/*
|
||||
@@ -250,7 +280,10 @@
|
||||
/datum/disease/advance/proc/GenerateCure()
|
||||
if(properties && properties.len)
|
||||
var/res = CLAMP(properties["resistance"] - (symptoms.len / 2), 1, advance_cures.len)
|
||||
cures = list(advance_cures[res])
|
||||
if(res == oldres)
|
||||
return
|
||||
cures = list(pick(advance_cures[res]))
|
||||
oldres = res
|
||||
|
||||
// Get the cure name from the cure_id
|
||||
var/datum/reagent/D = GLOB.chemical_reagents_list[cures[1]]
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
if(!..())
|
||||
return
|
||||
var/mob/living/carbon/M = A.affected_mob
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_ADJUST_VOLUME, 0.5 * power)
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_ADJUST_VOLUME, power)
|
||||
if(reverse_boost && SEND_SIGNAL(M, COMSIG_HAS_NANITES))
|
||||
if(prob(A.stage_prob))
|
||||
A.stage = min(A.stage + 1,A.max_stages)
|
||||
@@ -60,4 +60,4 @@
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_ADJUST_VOLUME, -0.4 * power)
|
||||
if(reverse_boost && SEND_SIGNAL(M, COMSIG_HAS_NANITES))
|
||||
if(prob(A.stage_prob))
|
||||
A.stage = min(A.stage + 1,A.max_stages)
|
||||
A.stage = min(A.stage + 1,A.max_stages)
|
||||
|
||||
+12
-2
@@ -21,8 +21,8 @@
|
||||
|
||||
/datum/ert/amber
|
||||
code = "Amber"
|
||||
leader_role = /datum/antagonist/ert/commander/red
|
||||
roles = list(/datum/antagonist/ert/security/red, /datum/antagonist/ert/medic/red, /datum/antagonist/ert/engineer/red)
|
||||
leader_role = /datum/antagonist/ert/commander/amber
|
||||
roles = list(/datum/antagonist/ert/security/amber, /datum/antagonist/ert/medic/amber, /datum/antagonist/ert/engineer/amber)
|
||||
|
||||
/datum/ert/red
|
||||
leader_role = /datum/antagonist/ert/commander/red
|
||||
@@ -55,3 +55,13 @@
|
||||
rename_team = "Inquisition"
|
||||
mission = "Destroy any traces of paranormal activity aboard the station."
|
||||
polldesc = "a Nanotrasen paranormal response team"
|
||||
|
||||
/datum/ert/greybois
|
||||
code = "Green"
|
||||
teamsize = 1
|
||||
opendoors = FALSE
|
||||
enforce_human = FALSE
|
||||
roles = /datum/antagonist/greybois
|
||||
leader_role = /datum/antagonist/greybois/greygod
|
||||
rename_team = "Emergency Assistants"
|
||||
polldesc = "an Emergency Assistant"
|
||||
|
||||
@@ -5,11 +5,19 @@
|
||||
// effectout: effect to show right after teleportation
|
||||
// asoundin: soundfile to play before teleportation
|
||||
// asoundout: soundfile to play after teleportation
|
||||
// force_teleport: if false, teleport will use Move() proc (dense objects will prevent teleportation)
|
||||
// no_effects: disable the default effectin/effectout of sparks
|
||||
/proc/do_teleport(atom/movable/teleatom, atom/destination, precision=null, force_teleport=TRUE, datum/effect_system/effectin=null, datum/effect_system/effectout=null, asoundin=null, asoundout=null, no_effects=FALSE)
|
||||
// forceMove: if false, teleport will use Move() proc (dense objects will prevent teleportation)
|
||||
// forced: whether or not to ignore no_teleport
|
||||
/proc/do_teleport(atom/movable/teleatom, atom/destination, precision=null, forceMove = TRUE, datum/effect_system/effectin=null, datum/effect_system/effectout=null, asoundin=null, asoundout=null, no_effects=FALSE, channel=TELEPORT_CHANNEL_BLUESPACE, forced = FALSE)
|
||||
// teleporting most effects just deletes them
|
||||
if(iseffect(teleatom) && !istype(teleatom, /obj/effect/dummy/chameleon))
|
||||
var/static/list/delete_atoms = typecacheof(list(
|
||||
/obj/effect,
|
||||
)) - typecacheof(list(
|
||||
/obj/effect/dummy/chameleon,
|
||||
/obj/effect/wisp,
|
||||
/obj/effect/mob_spawn
|
||||
))
|
||||
if(delete_atoms[teleatom.type])
|
||||
qdel(teleatom)
|
||||
return FALSE
|
||||
|
||||
@@ -17,25 +25,37 @@
|
||||
// if the precision is not specified, default to 0, but apply BoH penalties
|
||||
if (isnull(precision))
|
||||
precision = 0
|
||||
if(istype(teleatom, /obj/item/storage/backpack/holding))
|
||||
precision = rand(1,100)
|
||||
|
||||
var/static/list/bag_cache = typecacheof(/obj/item/storage/backpack/holding)
|
||||
var/list/bagholding = typecache_filter_list(teleatom.GetAllContents(), bag_cache)
|
||||
if(bagholding.len)
|
||||
precision = max(rand(1,100)*bagholding.len,100)
|
||||
if(isliving(teleatom))
|
||||
var/mob/living/MM = teleatom
|
||||
to_chat(MM, "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>")
|
||||
switch(channel)
|
||||
if(TELEPORT_CHANNEL_BLUESPACE)
|
||||
if(istype(teleatom, /obj/item/storage/backpack/holding))
|
||||
precision = rand(1,100)
|
||||
|
||||
// if effects are not specified and not explicitly disabled, sparks
|
||||
if ((!effectin || !effectout) && !no_effects)
|
||||
var/datum/effect_system/spark_spread/sparks = new
|
||||
sparks.set_up(5, 1, teleatom)
|
||||
if (!effectin)
|
||||
effectin = sparks
|
||||
if (!effectout)
|
||||
effectout = sparks
|
||||
var/static/list/bag_cache = typecacheof(/obj/item/storage/backpack/holding)
|
||||
var/list/bagholding = typecache_filter_list(teleatom.GetAllContents(), bag_cache)
|
||||
if(bagholding.len)
|
||||
precision = max(rand(1,100)*bagholding.len,100)
|
||||
if(isliving(teleatom))
|
||||
var/mob/living/MM = teleatom
|
||||
to_chat(MM, "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>")
|
||||
|
||||
// if effects are not specified and not explicitly disabled, sparks
|
||||
if ((!effectin || !effectout) && !no_effects)
|
||||
var/datum/effect_system/spark_spread/sparks = new
|
||||
sparks.set_up(5, 1, teleatom)
|
||||
if (!effectin)
|
||||
effectin = sparks
|
||||
if (!effectout)
|
||||
effectout = sparks
|
||||
if(TELEPORT_CHANNEL_QUANTUM)
|
||||
// if effects are not specified and not explicitly disabled, rainbow sparks
|
||||
if ((!effectin || !effectout) && !no_effects)
|
||||
var/datum/effect_system/spark_spread/quantum/sparks = new
|
||||
sparks.set_up(5, 1, teleatom)
|
||||
if (!effectin)
|
||||
effectin = sparks
|
||||
if (!effectout)
|
||||
effectout = sparks
|
||||
|
||||
// perform the teleport
|
||||
var/turf/curturf = get_turf(teleatom)
|
||||
@@ -45,11 +65,15 @@
|
||||
return FALSE
|
||||
|
||||
var/area/A = get_area(curturf)
|
||||
if(A.noteleport)
|
||||
var/area/B = get_area(destturf)
|
||||
if(!forced && (A.noteleport || B.noteleport))
|
||||
return FALSE
|
||||
|
||||
if(SEND_SIGNAL(destturf, COMSIG_ATOM_INTERCEPT_TELEPORT, channel, curturf, destturf))
|
||||
return FALSE
|
||||
|
||||
tele_play_specials(teleatom, curturf, effectin, asoundin)
|
||||
var/success = force_teleport ? teleatom.forceMove(destturf) : teleatom.Move(destturf)
|
||||
var/success = forceMove ? teleatom.forceMove(destturf) : teleatom.Move(destturf)
|
||||
if (success)
|
||||
log_game("[key_name(teleatom)] has teleported from [loc_name(curturf)] to [loc_name(destturf)]")
|
||||
tele_play_specials(teleatom, destturf, effectout, asoundout)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
var/map_file = "BoxStation.dmm"
|
||||
|
||||
var/traits = null
|
||||
var/space_ruin_levels = 1 //Citadel edit - reduces the default space ruin z-level count to 1
|
||||
var/space_ruin_levels = 2
|
||||
var/space_empty_levels = 1
|
||||
|
||||
var/minetype = "lavaland"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
var/name = "Martial Art"
|
||||
var/streak = ""
|
||||
var/max_streak_length = 6
|
||||
var/id = "" //ID, used by mind/has_martialartcode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proccode\game\objects\items\granters.dm:345:error: user.mind.has_martialart: undefined proc
|
||||
var/current_target
|
||||
var/datum/martial_art/base // The permanent style. This will be null unless the martial art is temporary
|
||||
var/deflection_chance = 0 //Chance to deflect projectiles
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/martial_art/boxing
|
||||
name = "Boxing"
|
||||
id = MARTIALART_BOXING
|
||||
|
||||
/datum/martial_art/boxing/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
to_chat(A, "<span class='warning'>Can't disarm while boxing!</span>")
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
/datum/martial_art/cqc
|
||||
name = "CQC"
|
||||
id = MARTIALART_CQC
|
||||
help_verb = /mob/living/carbon/human/proc/CQC_help
|
||||
block_chance = 75
|
||||
var/just_a_cook = FALSE
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/martial_art/krav_maga
|
||||
name = "Krav Maga"
|
||||
id = MARTIALART_KRAVMAGA
|
||||
var/datum/action/neck_chop/neckchop = new/datum/action/neck_chop()
|
||||
var/datum/action/leg_sweep/legsweep = new/datum/action/leg_sweep()
|
||||
var/datum/action/lung_punch/lungpunch = new/datum/action/lung_punch()
|
||||
@@ -85,14 +86,14 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/datum/martial_art/krav_maga/proc/leg_sweep(var/mob/living/carbon/human/A, var/mob/living/carbon/human/D)
|
||||
/datum/martial_art/krav_maga/proc/leg_sweep(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
if(D.lying || D.IsKnockdown())
|
||||
return 0
|
||||
D.visible_message("<span class='warning'>[A] leg sweeps [D]!</span>", \
|
||||
"<span class='userdanger'>[A] leg sweeps you!</span>")
|
||||
playsound(get_turf(A), 'sound/effects/hit_kick.ogg', 50, 1, -1)
|
||||
D.apply_damage(5, BRUTE)
|
||||
D.Knockdown(40, override_hardstun = 0.01, 25)
|
||||
D.Knockdown(40, override_hardstun = 0.01, override_stamdmg = 25)
|
||||
log_combat(A, D, "leg sweeped")
|
||||
return 1
|
||||
|
||||
@@ -196,7 +197,7 @@
|
||||
name = "combat gloves plus"
|
||||
desc = "These tactical gloves are fireproof and shock resistant, and using nanochip technology it teaches you the powers of krav maga."
|
||||
icon_state = "combat"
|
||||
item_state = "blackglovesplus"
|
||||
item_state = "blackgloves"
|
||||
siemens_coefficient = 0
|
||||
permeability_coefficient = 0.05
|
||||
strip_delay = 80
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/martial_art/mushpunch
|
||||
name = "Mushroom Punch"
|
||||
id = MARTIALART_MUSHPUNCH
|
||||
|
||||
/datum/martial_art/mushpunch/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
var/atk_verb
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
/datum/martial_art/plasma_fist
|
||||
name = "Plasma Fist"
|
||||
id = MARTIALART_PLASMAFIST
|
||||
help_verb = /mob/living/carbon/human/proc/plasma_fist_help
|
||||
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/martial_art/psychotic_brawling
|
||||
name = "Psychotic Brawling"
|
||||
id = MARTIALART_PSYCHOBRAWL
|
||||
|
||||
/datum/martial_art/psychotic_brawling/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
return psycho_attack(A,D)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
/datum/martial_art/the_sleeping_carp
|
||||
name = "The Sleeping Carp"
|
||||
id = MARTIALART_SLEEPINGCARP
|
||||
deflection_chance = 100
|
||||
reroute_deflection = TRUE
|
||||
no_guns = TRUE
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
/datum/martial_art/wrestling
|
||||
name = "Wrestling"
|
||||
id = MARTIALART_WRESTLING
|
||||
var/datum/action/slam/slam = new/datum/action/slam()
|
||||
var/datum/action/throw_wrassle/throw_wrassle = new/datum/action/throw_wrassle()
|
||||
var/datum/action/kick/kick = new/datum/action/kick()
|
||||
|
||||
+9
-1
@@ -64,6 +64,8 @@
|
||||
|
||||
var/force_escaped = FALSE // Set by Into The Sunset command of the shuttle manipulator
|
||||
|
||||
var/list/learned_recipes //List of learned recipe TYPES.
|
||||
|
||||
/datum/mind/New(var/key)
|
||||
src.key = key
|
||||
soulOwner = src
|
||||
@@ -130,7 +132,8 @@
|
||||
L.update_arousal_hud() //Removes the old icon
|
||||
|
||||
/datum/mind/proc/store_memory(new_text)
|
||||
memory += "[new_text]<BR>"
|
||||
if((length(memory) + length(new_text)) <= MAX_MESSAGE_LEN)
|
||||
memory += "[new_text]<BR>"
|
||||
|
||||
/datum/mind/proc/wipe_memory()
|
||||
memory = null
|
||||
@@ -778,6 +781,11 @@
|
||||
mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist)
|
||||
mind.active = 1 //indicates that the mind is currently synced with a client
|
||||
|
||||
/datum/mind/proc/has_martialart(var/string)
|
||||
if(martial_art && martial_art.id == string)
|
||||
return martial_art
|
||||
return FALSE
|
||||
|
||||
/mob/dead/new_player/sync_mind()
|
||||
return
|
||||
|
||||
|
||||
@@ -63,16 +63,14 @@
|
||||
/datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner)
|
||||
if(..())
|
||||
return
|
||||
owner.resize = 0.8
|
||||
owner.update_transform()
|
||||
owner.transform = owner.transform.Scale(1, 0.8)
|
||||
owner.pass_flags |= PASSTABLE
|
||||
owner.visible_message("<span class='danger'>[owner] suddenly shrinks!</span>", "<span class='notice'>Everything around you seems to grow..</span>")
|
||||
|
||||
/datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner)
|
||||
if(..())
|
||||
return
|
||||
owner.resize = 1.25
|
||||
owner.update_transform()
|
||||
owner.transform = owner.transform.Scale(1, 1.25)
|
||||
owner.pass_flags &= ~PASSTABLE
|
||||
owner.visible_message("<span class='danger'>[owner] suddenly grows!</span>", "<span class='notice'>Everything around you seems to shrink..</span>")
|
||||
|
||||
|
||||
@@ -91,32 +91,29 @@
|
||||
message = replacetext(message," oh god "," cheese and crackers ")
|
||||
message = replacetext(message," jesus "," gee wiz ")
|
||||
message = replacetext(message," weak "," strong ")
|
||||
message = replacetext(message," kill "," hug ")
|
||||
message = replacetext(message," murder "," tease ")
|
||||
message = replacetext(message," kill yourself "," hug ")
|
||||
message = replacetext(message," ugly "," beautiful ")
|
||||
message = replacetext(message," douchbag "," nice guy ")
|
||||
message = replacetext(message," whore "," lady ")
|
||||
message = replacetext(message," nerd "," smart guy ")
|
||||
message = replacetext(message," nerd "," smarty pants ")
|
||||
message = replacetext(message," moron "," fun person ")
|
||||
message = replacetext(message," IT'S LOOSE "," EVERYTHING IS FINE ")
|
||||
message = replacetext(message," sex "," hug fight ")
|
||||
message = replacetext(message," idiot "," genius ")
|
||||
message = replacetext(message," fat "," thin ")
|
||||
message = replacetext(message," beer "," water with ice ")
|
||||
message = replacetext(message," drink "," water ")
|
||||
message = replacetext(message," beer "," liquid bread ")
|
||||
message = replacetext(message," drink "," liquid ")
|
||||
message = replacetext(message," feminist "," empowered woman ")
|
||||
message = replacetext(message," i hate you "," you're mean ")
|
||||
message = replacetext(message," nigger "," african american ")
|
||||
message = replacetext(message," i hate you "," you're a mean ")
|
||||
message = replacetext(message," jew "," jewish ")
|
||||
message = replacetext(message," shit "," shiz ")
|
||||
message = replacetext(message," crap "," poo ")
|
||||
message = replacetext(message," slut "," tease ")
|
||||
message = replacetext(message," ass "," butt ")
|
||||
message = replacetext(message," damn "," dang ")
|
||||
message = replacetext(message," fuck "," ")
|
||||
message = replacetext(message," penis "," privates ")
|
||||
message = replacetext(message," cunt "," privates ")
|
||||
message = replacetext(message," dick "," jerk ")
|
||||
message = replacetext(message," dick "," privates ")
|
||||
message = replacetext(message," vagina "," privates ")
|
||||
speech_args[SPEECH_MESSAGE] = trim(message)
|
||||
|
||||
@@ -281,4 +278,4 @@
|
||||
/datum/mutation/human/stoner/on_losing(mob/living/carbon/human/owner)
|
||||
..()
|
||||
owner.grant_language(/datum/language/common)
|
||||
owner.remove_language(/datum/language/beachbum)
|
||||
owner.remove_language(/datum/language/beachbum)
|
||||
|
||||
@@ -305,3 +305,9 @@
|
||||
suffix = "spacehermit.dmm"
|
||||
name = "Space Hermit"
|
||||
description = "A late awakening cryo pod in a crashed escape pod wakes up to find what befell of his fellow survivors. Contains all the necessary resources to actually make it out alive. Good luck."
|
||||
|
||||
/datum/map_template/ruin/space/advancedlab
|
||||
id = "advancedlab"
|
||||
suffix = "advancedlab.dmm"
|
||||
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."
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
|
||||
/datum/saymode/changeling
|
||||
key = "g"
|
||||
key = MODE_KEY_CHANGELING
|
||||
mode = MODE_CHANGELING
|
||||
|
||||
/datum/saymode/changeling/handle_message(mob/living/user, message, datum/language/language)
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
|
||||
/datum/saymode/vocalcords
|
||||
key = "x"
|
||||
key = MODE_KEY_VOCALCORDS
|
||||
mode = MODE_VOCALCORDS
|
||||
|
||||
/datum/saymode/vocalcords/handle_message(mob/living/user, message, datum/language/language)
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
|
||||
/datum/saymode/binary //everything that uses .b (silicons, drones, blobbernauts/spores, swarmers)
|
||||
key = "b"
|
||||
key = MODE_KEY_BINARY
|
||||
mode = MODE_BINARY
|
||||
|
||||
/datum/saymode/binary/handle_message(mob/living/user, message, datum/language/language)
|
||||
|
||||
@@ -170,7 +170,7 @@
|
||||
tick_interval = 4
|
||||
alert_type = /obj/screen/alert/status_effect/his_grace
|
||||
var/bloodlust = 0
|
||||
|
||||
|
||||
/obj/screen/alert/status_effect/his_grace
|
||||
name = "His Grace"
|
||||
desc = "His Grace hungers, and you must feed Him."
|
||||
@@ -208,6 +208,7 @@
|
||||
owner.adjustToxLoss(-grace_heal, TRUE, TRUE)
|
||||
owner.adjustOxyLoss(-(grace_heal * 2))
|
||||
owner.adjustCloneLoss(-grace_heal)
|
||||
owner.adjustStaminaLoss(-(grace_heal * 25))
|
||||
|
||||
/datum/status_effect/his_grace/on_remove()
|
||||
owner.log_message("lost His Grace's stun immunity", LOG_ATTACK)
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
var/mob/living/quirk_holder
|
||||
|
||||
/datum/quirk/New(mob/living/quirk_mob, spawn_effects)
|
||||
..()
|
||||
if(!quirk_mob || (human_only && !ishuman(quirk_mob)) || quirk_mob.has_quirk(type))
|
||||
qdel(src)
|
||||
quirk_holder = quirk_mob
|
||||
|
||||
@@ -363,23 +363,3 @@
|
||||
gain_text = "<span class='danger'>There's a lot on your mind right now.</span>"
|
||||
lose_text = "<span class='notice'>Your mind finally feels calm.</span>"
|
||||
medical_record_text = "Patient's mind is in a vulnerable state, and cannot recover from traumatic events."
|
||||
|
||||
//For reviewers: Removal requested, commented out until the end of review (will remove when fixing merge conflicts). I'll probably rewrited
|
||||
/*Fixed quirk so that it's less impactful at the moment and doesn't override player autonomy (For the people in the discord who really want it.) See if that helps
|
||||
/datum/quirk/hypno
|
||||
name = "Hypnotherapy user"
|
||||
desc = "You had hypnotherapy right before your shift, you're not sure it had any effects, though."
|
||||
mob_trait = "hypnotherapy"
|
||||
value = -1 //I mean, it can be a really bad trait to have, but on the other hand, some people want it?
|
||||
gain_text = "<span class='notice'>You really think the hypnotherapy helped you out.</span>"
|
||||
//lose_text = "<span class='notice'>You forget about the hypnotherapy you had, or did you even have it?</span>"
|
||||
|
||||
/datum/quirk/hypno/add()
|
||||
//You caught me, it's not actually based off a trigger, stop spoiling the effect! Code diving ruins the magic!
|
||||
addtimer(CALLBACK(src, /datum/quirk/hypno.proc/triggered, quirk_holder), rand(120, 360))//increase by 100, it's lower so I can test it.
|
||||
|
||||
//DOES NOT give any indication when someone is triggered - this is intentional so people don't abuse it, you're supposed to get a random thing said to you as a mini objective.
|
||||
/datum/quirk/hypno/proc/triggered(quirk_holder)//I figured I might as well make a trait of code I added.
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
H.apply_status_effect(/datum/status_effect/trance, 1000, TRUE, TRUE)
|
||||
*/
|
||||
|
||||
@@ -231,6 +231,9 @@
|
||||
// Same for anyone with an abductor multitool.
|
||||
else if(user.is_holding_item_of_type(/obj/item/multitool/abductor))
|
||||
reveal_wires = TRUE
|
||||
// and advanced multitool
|
||||
else if(user.is_holding_item_of_type(/obj/item/multitool/advanced))
|
||||
reveal_wires = TRUE
|
||||
|
||||
// Station blueprints do that too, but only if the wires are not randomized.
|
||||
else if(user.is_holding_item_of_type(/obj/item/areaeditor/blueprints) && !randomize)
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60)
|
||||
if(WIRE_SHOCK)
|
||||
A.shocked = !A.shocked
|
||||
A.shock(usr, 50)
|
||||
addtimer(CALLBACK(A, /obj/machinery/autolathe.proc/reset, wire), 60)
|
||||
if(WIRE_DISABLE)
|
||||
A.disabled = !A.disabled
|
||||
@@ -40,9 +41,11 @@
|
||||
switch(wire)
|
||||
if(WIRE_HACK)
|
||||
A.adjust_hacked(!mend)
|
||||
if(WIRE_HACK)
|
||||
if(WIRE_SHOCK)
|
||||
A.shocked = !mend
|
||||
A.shock(usr, 50)
|
||||
if(WIRE_DISABLE)
|
||||
A.disabled = !mend
|
||||
if(WIRE_ZAP)
|
||||
A.shock(usr, 50)
|
||||
A.shock(usr, 50)
|
||||
|
||||
|
||||
@@ -467,3 +467,8 @@
|
||||
/area/ruin/space/has_grav/powered/ancient_shuttle
|
||||
name = "Ancient Shuttle"
|
||||
icon_state = "yellow"
|
||||
|
||||
// Abductor Replication Lab
|
||||
/area/ruin/space/has_grav/powered/advancedlab
|
||||
name = "Abductor Replication Lab"
|
||||
icon_state = "yellow"
|
||||
|
||||
+1
-1
@@ -379,7 +379,7 @@
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_ACID_ACT, acidpwr, acid_volume)
|
||||
|
||||
/atom/proc/emag_act()
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_EMAG_ACT)
|
||||
return SEND_SIGNAL(src, COMSIG_ATOM_EMAG_ACT)
|
||||
|
||||
/atom/proc/rad_act(strength)
|
||||
SEND_SIGNAL(src, COMSIG_ATOM_RAD_ACT, strength)
|
||||
|
||||
+26
-26
@@ -91,35 +91,35 @@ GLOBAL_LIST_EMPTY(all_radios)
|
||||
// use in maps, such as in intercoms.
|
||||
|
||||
GLOBAL_LIST_INIT(radiochannels, list(
|
||||
"Common" = FREQ_COMMON,
|
||||
"Science" = FREQ_SCIENCE,
|
||||
"Command" = FREQ_COMMAND,
|
||||
"Medical" = FREQ_MEDICAL,
|
||||
"Engineering" = FREQ_ENGINEERING,
|
||||
"Security" = FREQ_SECURITY,
|
||||
"CentCom" = FREQ_CENTCOM,
|
||||
"Syndicate" = FREQ_SYNDICATE,
|
||||
"Supply" = FREQ_SUPPLY,
|
||||
"Service" = FREQ_SERVICE,
|
||||
"AI Private" = FREQ_AI_PRIVATE,
|
||||
"Red Team" = FREQ_CTF_RED,
|
||||
"Blue Team" = FREQ_CTF_BLUE
|
||||
RADIO_CHANNEL_COMMON = FREQ_COMMON,
|
||||
RADIO_CHANNEL_SCIENCE = FREQ_SCIENCE,
|
||||
RADIO_CHANNEL_COMMAND = FREQ_COMMAND,
|
||||
RADIO_CHANNEL_MEDICAL = FREQ_MEDICAL,
|
||||
RADIO_CHANNEL_ENGINEERING = FREQ_ENGINEERING,
|
||||
RADIO_CHANNEL_SECURITY = FREQ_SECURITY,
|
||||
RADIO_CHANNEL_CENTCOM = FREQ_CENTCOM,
|
||||
RADIO_CHANNEL_SYNDICATE = FREQ_SYNDICATE,
|
||||
RADIO_CHANNEL_SUPPLY = FREQ_SUPPLY,
|
||||
RADIO_CHANNEL_SERVICE = FREQ_SERVICE,
|
||||
RADIO_CHANNEL_AI_PRIVATE = FREQ_AI_PRIVATE,
|
||||
RADIO_CHANNEL_CTF_RED = FREQ_CTF_RED,
|
||||
RADIO_CHANNEL_CTF_BLUE = FREQ_CTF_BLUE
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(reverseradiochannels, list(
|
||||
"[FREQ_COMMON]" = "Common",
|
||||
"[FREQ_SCIENCE]" = "Science",
|
||||
"[FREQ_COMMAND]" = "Command",
|
||||
"[FREQ_MEDICAL]" = "Medical",
|
||||
"[FREQ_ENGINEERING]" = "Engineering",
|
||||
"[FREQ_SECURITY]" = "Security",
|
||||
"[FREQ_CENTCOM]" = "CentCom",
|
||||
"[FREQ_SYNDICATE]" = "Syndicate",
|
||||
"[FREQ_SUPPLY]" = "Supply",
|
||||
"[FREQ_SERVICE]" = "Service",
|
||||
"[FREQ_AI_PRIVATE]" = "AI Private",
|
||||
"[FREQ_CTF_RED]" = "Red Team",
|
||||
"[FREQ_CTF_BLUE]" = "Blue Team"
|
||||
"[FREQ_COMMON]" = RADIO_CHANNEL_COMMON,
|
||||
"[FREQ_SCIENCE]" = RADIO_CHANNEL_SCIENCE,
|
||||
"[FREQ_COMMAND]" = RADIO_CHANNEL_COMMAND,
|
||||
"[FREQ_MEDICAL]" = RADIO_CHANNEL_MEDICAL,
|
||||
"[FREQ_ENGINEERING]" = RADIO_CHANNEL_ENGINEERING,
|
||||
"[FREQ_SECURITY]" = RADIO_CHANNEL_SECURITY,
|
||||
"[FREQ_CENTCOM]" = RADIO_CHANNEL_CENTCOM,
|
||||
"[FREQ_SYNDICATE]" = RADIO_CHANNEL_SYNDICATE,
|
||||
"[FREQ_SUPPLY]" = RADIO_CHANNEL_SUPPLY,
|
||||
"[FREQ_SERVICE]" = RADIO_CHANNEL_SERVICE,
|
||||
"[FREQ_AI_PRIVATE]" = RADIO_CHANNEL_AI_PRIVATE,
|
||||
"[FREQ_CTF_RED]" = RADIO_CHANNEL_CTF_RED,
|
||||
"[FREQ_CTF_BLUE]" = RADIO_CHANNEL_CTF_BLUE
|
||||
))
|
||||
|
||||
/datum/radio_frequency
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
name = "traitor+brothers"
|
||||
config_tag = "traitorbro"
|
||||
restricted_jobs = list("AI", "Cyborg")
|
||||
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Research Director")
|
||||
|
||||
announce_span = "danger"
|
||||
announce_text = "There are Syndicate agents and Blood Brothers on the station!\n\
|
||||
|
||||
@@ -52,7 +52,7 @@ Credit where due:
|
||||
if(!istype(M))
|
||||
return FALSE
|
||||
if(M.mind)
|
||||
if(ishuman(M) && (M.mind.assigned_role in list("Captain", "Chaplain")))
|
||||
if(M.mind.assigned_role in list("Captain", "Chaplain"))
|
||||
return FALSE
|
||||
if(M.mind.enslaved_to && !is_servant_of_ratvar(M.mind.enslaved_to))
|
||||
return FALSE
|
||||
@@ -275,7 +275,7 @@ Credit where due:
|
||||
gloves = /obj/item/clothing/gloves/color/yellow
|
||||
belt = /obj/item/storage/belt/utility/servant
|
||||
backpack_contents = list(/obj/item/storage/box/engineer = 1, \
|
||||
/obj/item/clockwork/replica_fabricator = 1, /obj/item/stack/tile/brass/fifty = 1, /obj/item/paper/servant_primer = 1, /obj/item/reagent_containers/food/drinks/holyoil = 1)
|
||||
/obj/item/clockwork/replica_fabricator = 1, /obj/item/stack/tile/brass/fifty = 1, /obj/item/paper/servant_primer = 1, /obj/item/reagent_containers/food/drinks/bottle/holyoil = 1)
|
||||
id = /obj/item/pda
|
||||
var/plasmaman //We use this to determine if we should activate internals in post_equip()
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
if(!istype(M))
|
||||
return FALSE
|
||||
if(M.mind)
|
||||
if(ishuman(M) && (M.mind.assigned_role in list("Captain", "Chaplain")))
|
||||
if(M.mind.assigned_role in list("Captain", "Chaplain"))
|
||||
return FALSE
|
||||
if(specific_cult && specific_cult.is_sacrifice_target(M.mind))
|
||||
return FALSE
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
name = "the chief engineer's advanced magnetic boots."
|
||||
targetitem = /obj/item/clothing/shoes/magboots/advance
|
||||
difficulty = 5
|
||||
excludefromjob = list("Chief Engineer")
|
||||
excludefromjob = list("Chief Engineer", "Station Engineer", "Atmospheric Technician")
|
||||
|
||||
/datum/objective_item/steal/capmedal
|
||||
name = "the medal of captaincy."
|
||||
@@ -62,10 +62,10 @@
|
||||
excludefromjob = list("Captain")
|
||||
|
||||
/datum/objective_item/steal/hypo
|
||||
name = "the hypospray."
|
||||
name = "the Chief Medical Officer's MKII hypospray."
|
||||
targetitem = /obj/item/hypospray/mkii/CMO //CITADEL EDIT, changing theft objective for the Hypo MK II
|
||||
difficulty = 5
|
||||
excludefromjob = list("Chief Medical Officer")
|
||||
excludefromjob = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Virologist", "Geneticist")
|
||||
|
||||
/datum/objective_item/steal/nukedisc
|
||||
name = "the nuclear authentication disk."
|
||||
@@ -83,10 +83,10 @@
|
||||
excludefromjob = list("Head of Security", "Warden")
|
||||
|
||||
/datum/objective_item/steal/reactive
|
||||
name = "the reactive teleport armor."
|
||||
name = "a reactive teleport armor."
|
||||
targetitem = /obj/item/clothing/suit/armor/reactive
|
||||
difficulty = 5
|
||||
excludefromjob = list("Research Director")
|
||||
excludefromjob = list("Research Director","Scientist", "Roboticist")
|
||||
|
||||
/datum/objective_item/steal/documents
|
||||
name = "any set of secret documents of any organization."
|
||||
@@ -143,7 +143,7 @@
|
||||
name = "the station blueprints."
|
||||
targetitem = /obj/item/areaeditor/blueprints
|
||||
difficulty = 10
|
||||
excludefromjob = list("Chief Engineer")
|
||||
excludefromjob = list("Chief Engineer", "Station Engineer", "Atmospheric Technician")
|
||||
altitems = list(/obj/item/photo)
|
||||
|
||||
/datum/objective_item/steal/blueprints/check_special_completion(obj/item/I)
|
||||
@@ -159,7 +159,7 @@
|
||||
name = "an unused sample of slime extract."
|
||||
targetitem = /obj/item/slime_extract
|
||||
difficulty = 3
|
||||
excludefromjob = list("Research Director","Scientist")
|
||||
excludefromjob = list("Research Director","Scientist", "Roboticist")
|
||||
|
||||
/datum/objective_item/steal/slime/check_special_completion(obj/item/slime_extract/E)
|
||||
if(E.Uses > 0)
|
||||
|
||||
@@ -193,8 +193,10 @@
|
||||
to_chat(usr, "<span class='warning'>Chem System Re-route detected, results may not be as expected!</span>")
|
||||
|
||||
/obj/machinery/sleeper/emag_act(mob/user)
|
||||
. = ..()
|
||||
scramble_chem_buttons()
|
||||
to_chat(user, "<span class='warning'>You scramble the sleeper's user interface!</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/sleeper/proc/inject_chem(chem, mob/user)
|
||||
if((chem in available_chems) && chem_allowed(chem))
|
||||
|
||||
@@ -177,7 +177,9 @@ GLOBAL_LIST_EMPTY(announcement_systems)
|
||||
act_up()
|
||||
|
||||
/obj/machinery/announcement_system/emag_act()
|
||||
. = ..()
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
obj_flags |= EMAGGED
|
||||
act_up()
|
||||
return TRUE
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
var/siphoning = FALSE
|
||||
var/next_warning = 0
|
||||
var/obj/item/radio/radio
|
||||
var/radio_channel = "Common"
|
||||
var/radio_channel = RADIO_CHANNEL_COMMON
|
||||
var/minimum_time_between_warnings = 400
|
||||
|
||||
/obj/machinery/computer/bank_machine/Initialize()
|
||||
|
||||
@@ -101,12 +101,14 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/button/emag_act(mob/user)
|
||||
. = ..()
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
req_access = list()
|
||||
req_one_access = list()
|
||||
playsound(src, "sparks", 100, 1)
|
||||
obj_flags |= EMAGGED
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/button/attack_ai(mob/user)
|
||||
if(!panel_open)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
var/internal_radio = TRUE
|
||||
var/obj/item/radio/radio
|
||||
var/radio_key = /obj/item/encryptionkey/headset_med
|
||||
var/radio_channel = "Medical"
|
||||
var/radio_channel = RADIO_CHANNEL_MEDICAL
|
||||
|
||||
var/obj/effect/countdown/clonepod/countdown
|
||||
|
||||
@@ -163,15 +163,8 @@
|
||||
|
||||
H.hardset_dna(ui, se, H.real_name, null, mrace, features)
|
||||
|
||||
if(efficiency > 2)
|
||||
var/list/unclean_mutations = (GLOB.not_good_mutations|GLOB.bad_mutations)
|
||||
H.dna.remove_mutation_group(unclean_mutations)
|
||||
if(efficiency > 5 && prob(20))
|
||||
H.randmutvg()
|
||||
if(efficiency < 3 && prob(50))
|
||||
var/mob/M = H.randmutb()
|
||||
if(ismob(M))
|
||||
H = M
|
||||
if(prob(50 - efficiency*10)) //Chance to give a bad mutation.
|
||||
H.randmutb() //100% bad mutation. Can be cured with mutadone.
|
||||
|
||||
H.silent = 20 //Prevents an extreme edge case where clones could speak if they said something at exactly the right moment.
|
||||
occupant = H
|
||||
@@ -327,10 +320,12 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/clonepod/emag_act(mob/user)
|
||||
. = ..()
|
||||
if(!occupant)
|
||||
return
|
||||
to_chat(user, "<span class='warning'>You corrupt the genetic compiler.</span>")
|
||||
malfunction()
|
||||
return TRUE
|
||||
|
||||
//Put messages in the connected computer's temp var for display.
|
||||
/obj/machinery/clonepod/proc/connected_message(message)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
table.computer = src
|
||||
break
|
||||
|
||||
/obj/machinery/computer/operating/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
|
||||
/obj/machinery/computer/operating/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.not_incapacitated_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "operating_computer", name, 350, 470, master_ui, state)
|
||||
@@ -125,4 +125,4 @@
|
||||
. = TRUE
|
||||
|
||||
#undef MENU_OPERATION
|
||||
#undef MENU_SURGERIES
|
||||
#undef MENU_SURGERIES
|
||||
|
||||
@@ -185,15 +185,19 @@
|
||||
ui_interact(usr) //Refresh the UI after a filter changes
|
||||
|
||||
/obj/machinery/computer/apc_control/emag_act(mob/user)
|
||||
. = ..()
|
||||
if(!authenticated)
|
||||
to_chat(user, "<span class='warning'>You bypass [src]'s access requirements using your emag.</span>")
|
||||
authenticated = TRUE
|
||||
log_activity("logged in")
|
||||
else if(!(obj_flags & EMAGGED))
|
||||
else
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
user.visible_message("<span class='warning'>You emag [src], disabling precise logging and allowing you to clear logs.</span>")
|
||||
log_game("[key_name(user)] emagged [src] at [AREACOORD(src)], disabling operator tracking.")
|
||||
obj_flags |= EMAGGED
|
||||
playsound(src, "sparks", 50, 1)
|
||||
playsound(src, "sparks", 50, 1)
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/computer/apc_control/proc/log_activity(log_text)
|
||||
var/op_string = operator && !(obj_flags & EMAGGED) ? operator : "\[NULL OPERATOR\]"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user