Merge branch 'master' into assu

This commit is contained in:
Anonymous
2019-10-23 13:32:39 +03:00
148 changed files with 4084 additions and 2846 deletions
@@ -127842,8 +127842,7 @@
icon_state = "airlock_control_standby";
id = "chapelgun";
name = "Mass Driver Controller";
pixel_x = -24;
pixel_y = 0
pixel_x = -24
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
@@ -24138,8 +24138,7 @@
dir = 8
},
/obj/machinery/keycard_auth{
pixel_x = -23;
pixel_y = 0
pixel_x = -23
},
/turf/open/floor/plasteel,
/area/quartermaster/qm)
+7 -2
View File
@@ -9,6 +9,7 @@
/obj/machinery/door/airlock/titanium{
name = "Arrivals Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/arrival)
"d" = (
@@ -150,17 +151,21 @@
},
/turf/open/floor/plating/airless,
/area/shuttle/arrival)
"B" = (
/obj/machinery/porta_turret/centcom_shuttle,
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"S" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/arrival)
(1,1,1) = {"
a
b
B
o
d
d
b
B
a
"}
(2,1,1) = {"
+7 -2
View File
@@ -165,6 +165,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/white,
/area/shuttle/arrival)
"o" = (
@@ -449,6 +450,10 @@
},
/turf/open/floor/plasteel,
/area/shuttle/arrival)
"T" = (
/obj/machinery/porta_turret/centcom_shuttle,
/turf/closed/wall/mineral/plastitanium,
/area/shuttle/arrival)
"U" = (
/obj/machinery/computer{
dir = 1;
@@ -480,7 +485,7 @@
(1,1,1) = {"
a
d
T
f
g
n
@@ -632,7 +637,7 @@ a
"}
(9,1,1) = {"
a
d
T
f
g
n
+1
View File
@@ -87,6 +87,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 9
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/arrival)
"k" = (
+7 -2
View File
@@ -9,6 +9,7 @@
/obj/machinery/door/airlock/titanium{
name = "Arrivals Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/arrival)
"d" = (
@@ -139,16 +140,20 @@
},
/turf/open/floor/plating/airless,
/area/shuttle/arrival)
"w" = (
/obj/machinery/porta_turret/centcom_shuttle,
/turf/closed/wall/mineral/titanium,
/area/shuttle/arrival)
"C" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/arrival)
(1,1,1) = {"
a
b
w
m
m
b
w
a
"}
(2,1,1) = {"
+65 -52
View File
@@ -28,7 +28,7 @@
/turf/closed/wall,
/area/shuttle/escape)
"f" = (
/turf/open/floor/plating/airless,
/turf/open/floor/plating,
/area/shuttle/escape)
"g" = (
/obj/docking_port/mobile/emergency/shuttle_build{
@@ -39,32 +39,45 @@
preferred_direction = 2;
width = 30
},
/turf/open/floor/plating/airless,
/obj/machinery/door/airlock,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"h" = (
/obj/machinery/computer/emergency_shuttle{
dir = 1
},
/turf/open/floor/plating,
/area/shuttle/escape)
"K" = (
/obj/machinery/door/airlock,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
(1,1,1) = {"
a
c
e
f
f
f
f
f
f
f
f
e
e
e
e
e
e
K
e
g
f
f
f
f
f
f
f
f
f
f
e
e
e
e
e
K
e
K
e
e
e
e
a
@@ -128,7 +141,7 @@ f
f
f
f
f
e
a
a
a
@@ -192,8 +205,8 @@ f
f
e
e
f
f
e
e
e
e
"}
@@ -257,7 +270,7 @@ f
f
f
f
f
e
"}
(8,1,1) = {"
c
@@ -288,7 +301,7 @@ f
f
f
f
f
e
"}
(9,1,1) = {"
b
@@ -318,8 +331,8 @@ f
f
f
f
f
f
h
e
"}
(10,1,1) = {"
b
@@ -350,7 +363,7 @@ f
f
f
f
f
e
"}
(11,1,1) = {"
c
@@ -381,7 +394,7 @@ f
f
f
f
f
e
"}
(12,1,1) = {"
b
@@ -412,7 +425,7 @@ f
f
f
f
f
e
"}
(13,1,1) = {"
b
@@ -471,8 +484,8 @@ f
f
e
e
f
f
e
e
e
e
"}
@@ -531,7 +544,7 @@ f
f
f
f
f
e
a
a
a
@@ -573,25 +586,25 @@ a
a
c
e
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
e
a
+15 -13
View File
@@ -2,6 +2,13 @@
"aa" = (
/turf/template_noop,
/area/template_noop)
"ab" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"ac" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
@@ -16,17 +23,7 @@
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"ah" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"ai" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aj" = (
"af" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
@@ -37,8 +34,13 @@
name = "Asteroid emergency shuttle";
width = 28
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"ah" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"al" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock";
@@ -618,7 +620,7 @@ aa
aa
"}
(12,1,1) = {"
ai
ab
at
at
at
@@ -708,7 +710,7 @@ aa
aa
"}
(18,1,1) = {"
aj
af
at
at
at
+3 -2
View File
@@ -5,9 +5,10 @@
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape/backup)
"c" = (
"b" = (
/obj/machinery/door/airlock/titanium,
/obj/docking_port/mobile/emergency/backup,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape/backup)
"f" = (
@@ -55,7 +56,7 @@
(1,1,1) = {"
m
m
c
b
m
m
m
+232 -196
View File
@@ -10,15 +10,8 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"ad" = (
/obj/structure/table,
/obj/machinery/chem_dispenser/drinks/beer{
dir = 8
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/obj/effect/spawner/structure/window/shuttle,
/turf/open/space/basic,
/area/shuttle/escape)
"ae" = (
/turf/closed/wall/mineral/titanium/nodiagonal,
@@ -45,19 +38,10 @@
pixel_x = -4;
pixel_y = 6
},
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
/obj/item/storage/box/drinkingglasses,
/turf/open/floor/carpet,
/area/shuttle/escape)
"aj" = (
/obj/structure/table,
/obj/machinery/chem_dispenser/drinks{
dir = 8
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"ak" = (
/obj/structure/extinguisher_cabinet{
pixel_y = 30
@@ -88,12 +72,6 @@
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"ap" = (
/obj/machinery/computer/security{
dir = 8
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"aq" = (
/obj/machinery/computer/crew{
dir = 4
@@ -122,17 +100,53 @@
pixel_x = 6;
pixel_y = -24
},
/obj/structure/table/wood/poker,
/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
/obj/machinery/light,
/turf/open/floor/carpet,
/area/shuttle/escape)
"au" = (
/obj/machinery/computer/communications{
dir = 8
/obj/structure/table,
/obj/item/storage/backpack/duffelbag/med/surgery,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"av" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/carpet,
/obj/structure/fans/tiny,
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aw" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "The Emergency Escape Bar"
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"ax" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"ay" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"az" = (
/obj/machinery/door/airlock/public/glass{
@@ -145,6 +159,12 @@
/obj/machinery/status_display/evac,
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"aB" = (
/obj/machinery/computer/security{
dir = 8
},
/turf/open/floor/carpet,
/area/shuttle/escape)
"aC" = (
/obj/structure/chair/comfy/shuttle,
/turf/open/floor/mineral/plastitanium/red/brig,
@@ -183,10 +203,10 @@
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"aG" = (
/obj/structure/chair/stool{
can_buckle = 1
/obj/machinery/computer/communications{
dir = 8
},
/turf/open/floor/plasteel/grimy,
/turf/open/floor/carpet,
/area/shuttle/escape)
"aH" = (
/obj/machinery/flasher{
@@ -220,11 +240,10 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aK" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
/obj/structure/chair/stool{
can_buckle = 1
},
/turf/open/floor/mineral/plastitanium/red/brig,
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"aL" = (
/obj/structure/extinguisher_cabinet{
@@ -267,6 +286,12 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aQ" = (
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"aR" = (
/obj/structure/table/wood/bar{
boot_dir = 8
@@ -278,6 +303,15 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aS" = (
/obj/structure/table/wood/bar,
/obj/item/instrument/guitar,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aT" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 27
},
@@ -290,19 +324,6 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aT" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "The Emergency Escape Bar"
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aU" = (
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
@@ -311,6 +332,17 @@
/mob/living/simple_animal/hostile/alien/maid/barmaid,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aV" = (
/obj/structure/table,
/obj/machinery/chem_dispenser/drinks/beer{
dir = 8
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"aW" = (
/obj/structure/chair/wood/normal,
/turf/open/floor/plasteel/grimy,
@@ -341,6 +373,17 @@
/obj/effect/spawner/lootdrop/gambling,
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"bb" = (
/obj/structure/table,
/obj/machinery/chem_dispenser/drinks{
dir = 8
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bc" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
@@ -369,10 +412,29 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bg" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
"bf" = (
/obj/structure/table,
/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/storage/fancy/cigarettes/cigars/havana,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bg" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-10"
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bh" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
@@ -382,13 +444,24 @@
"bi" = (
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bj" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bk" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
/obj/machinery/sleeper{
dir = 8
},
/turf/open/floor/plasteel,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bl" = (
/obj/machinery/sleeper{
dir = 8
},
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bm" = (
/obj/machinery/door/airlock{
@@ -402,10 +475,13 @@
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"bo" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
/obj/structure/table,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/brute{
pixel_x = 4;
pixel_y = 4
},
/turf/open/floor/plasteel/freezer,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bp" = (
/turf/open/floor/plasteel/freezer,
@@ -417,10 +493,8 @@
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"br" = (
/obj/machinery/sleeper{
dir = 8
},
/turf/open/floor/mineral/titanium,
/obj/machinery/computer/card,
/turf/open/floor/carpet,
/area/shuttle/escape)
"bs" = (
/obj/machinery/door/airlock{
@@ -442,7 +516,6 @@
/area/shuttle/escape)
"bw" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/obj/machinery/light/small{
brightness = 3;
dir = 8
@@ -465,15 +538,12 @@
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bz" = (
/obj/structure/table,
/obj/item/circular_saw,
/obj/item/hemostat,
/obj/item/retractor,
/obj/item/scalpel,
/obj/item/surgicaldrill,
/obj/item/cautery,
/turf/open/floor/mineral/titanium,
"bA" = (
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/obj/effect/turf_decal/tile/bar,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bC" = (
/obj/structure/window/reinforced{
@@ -486,10 +556,6 @@
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"bF" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"bG" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-21";
@@ -505,15 +571,6 @@
"bH" = (
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"bI" = (
/obj/structure/table/wood/bar,
/obj/item/instrument/guitar,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bJ" = (
/obj/structure/table/wood/bar,
/obj/item/storage/fancy/donut_box,
@@ -535,17 +592,6 @@
},
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"bN" = (
/obj/structure/table,
/obj/item/storage/box/drinkingglasses,
/obj/item/reagent_containers/food/drinks/shaker,
/obj/item/storage/fancy/cigarettes/cigars/havana,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bO" = (
/obj/structure/table/wood/bar,
/obj/item/folder/red,
@@ -584,25 +630,6 @@
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bT" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-10"
},
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bU" = (
/obj/structure/table,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/brute{
pixel_x = 4;
pixel_y = 4
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bV" = (
/obj/structure/table/wood/bar{
boot_dir = 8
@@ -616,12 +643,6 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bW" = (
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/plasteel/grimy,
/area/shuttle/escape)
"bX" = (
/obj/machinery/light{
dir = 8
@@ -658,15 +679,6 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"cb" = (
/obj/machinery/sleeper{
dir = 8
},
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
(1,1,1) = {"
aa
@@ -676,17 +688,17 @@ aa
ab
ab
ab
aK
av
ab
aT
aw
ab
ac
ac
ac
ab
bg
ax
ab
bo
ay
ab
ab
ab
@@ -703,11 +715,11 @@ aH
aL
ab
bY
bH
aZ
bc
aZ
bH
bA
bA
bA
bA
bA
bZ
ab
bp
@@ -727,11 +739,11 @@ aI
aM
ab
aE
aW
ba
bL
bO
bQ
bH
aZ
bc
aZ
bH
bR
ab
bp
@@ -752,9 +764,9 @@ aM
ab
aE
aW
bJ
bM
bP
ba
bL
bO
bQ
aE
ab
@@ -775,11 +787,11 @@ aJ
ac
ae
aE
bH
bK
bH
bK
bH
aW
bJ
bM
bP
bQ
aE
aA
bp
@@ -799,11 +811,11 @@ aE
aE
bX
aE
aE
aE
aE
aE
aE
bH
bK
bH
bK
bH
aE
bm
bp
@@ -814,10 +826,34 @@ bE
"}
(7,1,1) = {"
ac
ag
br
an
an
az
bA
bA
bA
bA
bA
bA
bA
bA
bA
bA
bA
ae
ae
ab
ab
bC
bE
"}
(8,1,1) = {"
ad
ag
an
an
ab
aE
aE
aN
@@ -830,13 +866,13 @@ aN
aE
ca
ae
ab
ab
ab
bw
bi
au
bC
bE
"}
(8,1,1) = {"
(9,1,1) = {"
ac
ai
ao
@@ -855,16 +891,16 @@ aN
aE
bn
bi
bw
bz
bi
bi
bC
bE
"}
(9,1,1) = {"
(10,1,1) = {"
ab
ae
ap
au
aB
aG
ab
aF
bH
@@ -884,32 +920,32 @@ bS
bC
bE
"}
(10,1,1) = {"
aa
ab
ab
ab
ab
aG
bW
bI
aS
ad
aY
aj
bN
be
bT
bk
bF
br
cb
bU
ab
ab
"}
(11,1,1) = {"
aa
ab
ab
ab
ab
aK
aQ
aS
aT
aV
aY
bb
bf
be
bg
bh
bj
bk
bl
bo
ab
ab
"}
(12,1,1) = {"
aa
aa
aa
aa
+7 -1
View File
@@ -112,6 +112,11 @@
/obj/machinery/light,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"w" = (
/obj/machinery/door/airlock/titanium,
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"x" = (
/obj/structure/table,
/obj/machinery/recharger{
@@ -197,6 +202,7 @@
width = 14;
name = "Birdboat emergency escape shuttle"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"L" = (
@@ -574,7 +580,7 @@ p
u
b
b
G
w
K
b
b
+40 -28
View File
@@ -2,6 +2,14 @@
"aa" = (
/turf/template_noop,
/area/template_noop)
"ab" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"ac" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
@@ -37,6 +45,23 @@
/obj/item/storage/firstaid/fire,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aj" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "Box emergency shuttle"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ak" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"al" = (
/obj/machinery/computer/atmos_alert{
dir = 4
@@ -171,13 +196,6 @@
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aI" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aJ" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
@@ -192,15 +210,6 @@
/obj/structure/table,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aP" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "Box emergency shuttle"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aQ" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
@@ -235,12 +244,6 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aV" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aW" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -30
@@ -362,10 +365,19 @@
"ga" = (
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"gJ" = (
/obj/structure/table/optable,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"XC" = (
/obj/structure/closet/emcloset,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"ZQ" = (
/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/structure/table,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
(1,1,1) = {"
aa
@@ -375,17 +387,17 @@ aa
ad
ad
ad
aI
ab
ad
aP
aj
ad
ac
ac
ac
ad
aV
ak
ad
aV
ak
ad
ad
ad
@@ -531,7 +543,7 @@ aC
ac
XC
bs
XC
gJ
bi
bk
"}
@@ -555,7 +567,7 @@ aC
aZ
ga
ga
ga
ZQ
bi
bk
"}
+41 -49
View File
@@ -507,6 +507,35 @@
/obj/item/book/manual/wiki/security_space_law,
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aW" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aX" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
dheight = 0;
dwidth = 15;
height = 20;
name = "Cere emergency shuttle";
width = 42
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aY" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aZ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -639,13 +668,6 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bv" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bw" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
@@ -696,19 +718,6 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bE" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
dheight = 0;
dwidth = 15;
height = 20;
name = "Cere emergency shuttle";
width = 42
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bF" = (
/obj/structure/closet/crate/bin,
/obj/effect/turf_decal/tile/neutral{
@@ -936,12 +945,6 @@
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bY" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bZ" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -28
@@ -1291,26 +1294,17 @@
/obj/structure/window/reinforced{
dir = 4
},
/obj/item/circular_saw,
/obj/item/scalpel{
pixel_y = 12
},
/obj/item/hemostat,
/obj/item/surgicaldrill,
/obj/item/cautery{
pixel_x = 4
},
/obj/item/retractor,
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/effect/turf_decal/tile/blue,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"cG" = (
@@ -1361,15 +1355,13 @@
/obj/item/clothing/suit/apron/surgical,
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/item/surgical_drapes,
/obj/item/razor,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
@@ -1762,17 +1754,17 @@ ab
ab
ab
ab
bv
aW
ab
bE
aX
ab
aa
aa
aa
ab
bY
aY
ab
bY
aY
ab
aa
aa
+28 -19
View File
@@ -117,6 +117,23 @@
},
/turf/open/floor/mineral/bananium,
/area/shuttle/escape)
"aw" = (
/obj/machinery/door/airlock/bananium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "Snappop(tm)!"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ax" = (
/obj/machinery/door/airlock/bananium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ay" = (
/obj/structure/table,
/obj/item/storage/firstaid/fire,
@@ -137,6 +154,8 @@
/obj/machinery/door/airlock/bananium/glass{
name = "Emergency Shuttle Greentext"
},
/obj/structure/fans/tiny,
/obj/structure/barricade/wooden/crude,
/turf/open/floor/bluespace,
/area/shuttle/escape)
"aC" = (
@@ -170,15 +189,6 @@
/obj/item/toy/sword,
/turf/open/floor/mineral/bananium,
/area/shuttle/escape)
"aI" = (
/obj/machinery/door/airlock/bananium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "Snappop(tm)!"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aJ" = (
/obj/item/toy/snappop/phoenix,
/obj/machinery/light/small{
@@ -233,12 +243,6 @@
},
/turf/open/floor/mineral/bananium,
/area/shuttle/escape)
"aQ" = (
/obj/machinery/door/airlock/bananium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aR" = (
/obj/item/toy/snappop/phoenix,
/obj/machinery/light/small,
@@ -338,6 +342,11 @@
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"bL" = (
/obj/item/toy/snappop/phoenix,
/obj/item/pneumatic_cannon/pie/selfcharge,
/turf/open/floor/bluespace,
/area/shuttle/escape)
"Zf" = (
/obj/structure/closet/emcloset,
/obj/item/toy/sword,
@@ -354,15 +363,15 @@ ab
ab
ab
ab
aI
aw
ab
ac
ac
ac
ab
aQ
ax
ab
aQ
ax
ab
ab
ab
@@ -467,7 +476,7 @@ bg
(6,1,1) = {"
ac
ag
ak
bL
aq
ab
av
+3
View File
@@ -11,6 +11,7 @@
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"d" = (
@@ -64,6 +65,7 @@
name = "Secure Transport Vessel 5";
width = 14
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"l" = (
@@ -97,6 +99,7 @@
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"r" = (
+5 -15
View File
@@ -147,7 +147,6 @@
/area/shuttle/escape)
"al" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
@@ -157,18 +156,7 @@
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"am" = (
/obj/item/scalpel{
pixel_y = 12
},
/obj/item/circular_saw,
/obj/item/retractor{
pixel_x = 4
},
/obj/item/hemostat{
pixel_x = -4
},
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/structure/table/reinforced,
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -176,8 +164,6 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/item/surgicaldrill,
/obj/item/cautery,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"an" = (
@@ -490,6 +476,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aP" = (
@@ -562,6 +549,7 @@
preferred_direction = 2;
port_direction = 4
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aX" = (
@@ -796,6 +784,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"bw" = (
@@ -908,6 +897,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bM" = (
+23 -15
View File
@@ -83,6 +83,7 @@
/obj/machinery/door/airlock/gold{
req_access_txt = "19"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/gold,
/area/shuttle/escape)
"q" = (
@@ -110,6 +111,7 @@
heat_proof = 1;
resistance_flags = 2
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/plasma,
/area/shuttle/escape)
"v" = (
@@ -118,6 +120,7 @@
/area/shuttle/escape)
"w" = (
/obj/machinery/door/airlock/gold,
/obj/structure/fans/tiny,
/turf/open/floor/wood,
/area/shuttle/escape)
"x" = (
@@ -220,6 +223,11 @@
"O" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/shuttle/escape)
"P" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/elevatorshaft,
/area/shuttle/escape)
(1,1,1) = {"
a
@@ -262,7 +270,7 @@ r
r
r
q
c
P
x
C
I
@@ -274,7 +282,7 @@ b
b
h
m
c
P
r
r
r
@@ -286,7 +294,7 @@ r
r
r
r
c
P
x
D
D
@@ -298,7 +306,7 @@ c
d
i
i
c
P
r
r
r
@@ -310,7 +318,7 @@ j
r
r
r
c
P
x
x
x
@@ -322,7 +330,7 @@ c
e
j
j
c
P
r
r
s
@@ -334,7 +342,7 @@ j
s
r
r
c
P
y
E
y
@@ -346,7 +354,7 @@ c
f
j
n
c
P
r
j
j
@@ -358,7 +366,7 @@ t
j
j
r
c
P
z
F
J
@@ -382,7 +390,7 @@ j
s
r
r
c
P
y
G
y
@@ -394,7 +402,7 @@ c
g
k
k
c
P
r
r
r
@@ -406,7 +414,7 @@ j
r
r
r
c
P
x
x
x
@@ -418,7 +426,7 @@ b
b
l
o
c
P
r
r
r
@@ -430,7 +438,7 @@ r
r
r
r
c
P
A
x
K
@@ -454,7 +462,7 @@ r
r
r
q
c
P
B
H
L
+12 -11
View File
@@ -28,6 +28,7 @@
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"h" = (
@@ -41,6 +42,7 @@
name = "NES Port";
width = 19
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"l" = (
@@ -67,9 +69,7 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"q" = (
/obj/machinery/sleeper{
dir = 4
},
/obj/machinery/sleeper,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"r" = (
@@ -93,11 +93,6 @@
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"v" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"w" = (
/obj/machinery/door/airlock/public/glass{
name = "Emergency Shuttle Infirmary"
@@ -186,12 +181,18 @@
/obj/structure/window/reinforced,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"P" = (
/obj/structure/table/optable,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"Q" = (
/obj/machinery/light,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"R" = (
/obj/machinery/light/small,
/obj/structure/table,
/obj/item/storage/backpack/duffelbag/med/surgery,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"S" = (
@@ -272,8 +273,8 @@ X
c
d
q
v
q
n
P
d
H
H
@@ -284,7 +285,7 @@ Y
(4,1,1) = {"
d
l
n
q
n
R
d
+630
View File
@@ -0,0 +1,630 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/template_noop,
/area/template_noop)
"ab" = (
/turf/closed/wall/rust,
/area/shuttle/escape)
"ac" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plasteel/elevatorshaft,
/area/shuttle/escape)
"ad" = (
/turf/closed/wall,
/area/shuttle/escape)
"ae" = (
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"af" = (
/obj/machinery/computer/emergency_shuttle,
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ag" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ah" = (
/obj/machinery/computer/atmos_alert{
dir = 4
},
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ai" = (
/obj/structure/chair/office/dark,
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"aj" = (
/obj/structure/chair/comfy/brown{
dir = 1
},
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ak" = (
/obj/item/chair,
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"al" = (
/obj/machinery/computer/security{
dir = 8
},
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"am" = (
/obj/machinery/computer/crew{
dir = 4
},
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"an" = (
/obj/machinery/light,
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ao" = (
/obj/machinery/computer/communications{
dir = 8
},
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ap" = (
/obj/machinery/status_display/evac,
/turf/closed/wall/rust,
/area/shuttle/escape)
"aq" = (
/obj/machinery/door/airlock/gold{
req_access_txt = "19"
},
/turf/open/floor/holofloor/wood,
/area/shuttle/escape)
"ar" = (
/obj/structure/urinal{
pixel_y = 31
},
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"as" = (
/obj/structure/chair/comfy/shuttle,
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"at" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/shuttle/escape)
"au" = (
/obj/machinery/deepfryer,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"av" = (
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aw" = (
/obj/structure/closet/crate/freezer/blood,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"ax" = (
/turf/open/floor/plating,
/area/shuttle/escape)
"ay" = (
/obj/machinery/flasher{
id = "shuttle_flasher";
pixel_x = -24;
pixel_y = 6
},
/obj/machinery/button/flasher{
id = "shuttle_flasher";
pixel_x = -24;
pixel_y = -6
},
/obj/machinery/light/small{
brightness = 3;
dir = 8
},
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"az" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aA" = (
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aB" = (
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"aC" = (
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aD" = (
/obj/structure/closet,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aE" = (
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aF" = (
/obj/structure/chair/comfy/shuttle{
dir = 1
},
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"aG" = (
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aH" = (
/obj/structure/noticeboard,
/turf/closed/wall/rust,
/area/shuttle/escape)
"aI" = (
/obj/docking_port/mobile/emergency{
height = 15;
name = "Gorilla Emergency Shuttle"
},
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aJ" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
pixel_y = 30
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/shuttle/escape)
"aK" = (
/obj/structure/closet/crate/trashcart,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aL" = (
/obj/machinery/light{
dir = 1
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aM" = (
/obj/structure/reagent_dispensers/keg/mead,
/turf/open/floor/plating,
/area/shuttle/escape)
"aN" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/shuttle/escape)
"aO" = (
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aP" = (
/obj/structure/fluff/broken_flooring,
/turf/open/floor/plating,
/area/shuttle/escape)
"aQ" = (
/obj/structure/closet/crate/freezer,
/turf/open/floor/plating,
/area/shuttle/escape)
"aR" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aS" = (
/obj/effect/decal/cleanable/vomit/old,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aT" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aU" = (
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aV" = (
/obj/effect/decal/cleanable/blood/innards,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aW" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aX" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aY" = (
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"aZ" = (
/obj/structure/closet/crate/freezer,
/turf/open/floor/plasteel/freezer,
/area/shuttle/escape)
"ba" = (
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/obj/machinery/light/small{
brightness = 3;
dir = 8
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"bb" = (
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"bc" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -30
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"bd" = (
/obj/structure/closet/toolcloset,
/turf/open/floor/plating,
/area/shuttle/escape)
"be" = (
/obj/machinery/light/small{
dir = 1
},
/obj/structure/chair/sofa/right,
/turf/open/floor/plating,
/area/shuttle/escape)
"bf" = (
/obj/structure/chair/sofa,
/mob/living/simple_animal/hostile/gorilla,
/turf/open/floor/plating,
/area/shuttle/escape)
"bg" = (
/obj/structure/chair/sofa,
/turf/open/floor/plating,
/area/shuttle/escape)
"bh" = (
/obj/structure/chair/sofa,
/mob/living/simple_animal/hostile/gorilla,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"bi" = (
/obj/structure/chair/sofa/left,
/mob/living/simple_animal/hostile/gorilla,
/turf/open/floor/plating,
/area/shuttle/escape)
"bj" = (
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating,
/area/shuttle/escape)
"bk" = (
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bl" = (
/mob/living/simple_animal/hostile/gorilla,
/turf/open/floor/plating,
/area/shuttle/escape)
"bm" = (
/obj/effect/decal/cleanable/blood/gibs/limb,
/mob/living/simple_animal/hostile/gorilla,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"bn" = (
/obj/structure/reagent_dispensers/keg/semen,
/turf/open/floor/plating,
/area/shuttle/escape)
"bo" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"bp" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
/turf/open/floor/plating,
/area/shuttle/escape)
"bq" = (
/mob/living/simple_animal/hostile/gorilla,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"br" = (
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"bs" = (
/obj/structure/shuttle/engine/heater,
/obj/structure/window/plasma/reinforced{
dir = 1
},
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"bt" = (
/turf/template_noop,
/area/space)
"bu" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
(1,1,1) = {"
aa
aa
aa
aa
ab
ab
ab
aE
ab
aI
ab
at
at
at
ab
bb
ab
bb
ab
ad
ad
bt
"}
(2,1,1) = {"
aa
ad
ab
ad
ab
ar
ay
aA
aH
ax
aN
aR
aW
aR
ba
av
ad
ax
ax
bo
ab
ab
"}
(3,1,1) = {"
ab
ab
ah
am
ap
as
az
aF
ab
aJ
av
aS
av
ax
av
bc
ab
bd
bj
bp
bs
bu
"}
(4,1,1) = {"
ac
ae
ai
ae
ab
as
aA
aF
ad
aK
av
aP
av
av
ax
ab
ad
ab
bk
ab
bs
bu
"}
(5,1,1) = {"
ac
ae
ae
ak
ab
at
aB
at
ab
aL
av
aT
aT
aT
aT
ac
ac
be
aN
bl
bs
bu
"}
(6,1,1) = {"
ac
af
aj
an
ad
au
av
av
av
av
aO
ab
ab
ad
ab
ad
ad
bf
bl
bq
bs
bu
"}
(7,1,1) = {"
ac
ae
ae
ae
aq
av
ax
av
av
aM
aP
aU
aC
aX
aD
ad
ad
bg
bm
bn
bs
bu
"}
(8,1,1) = {"
ac
ag
ak
ae
ab
ab
ad
ad
ab
ad
ab
ab
aC
aY
aX
ad
ad
bh
aP
bq
bs
bu
"}
(9,1,1) = {"
ab
ad
al
ao
ab
aw
aC
ax
aG
aC
aD
aC
ax
aZ
ax
ac
ac
bg
bl
br
bs
bu
"}
(10,1,1) = {"
aa
ad
ab
ad
ab
ax
aD
aG
aD
aC
aQ
aV
aC
aX
aD
ad
ab
bi
bn
bl
ab
ab
"}
(11,1,1) = {"
aa
aa
aa
aa
ab
ab
ad
ab
ab
ad
ab
ad
ab
ad
ad
ab
ad
ab
ab
ad
ad
aa
"}
File diff suppressed because it is too large Load Diff
+28 -32
View File
@@ -2,6 +2,13 @@
"aa" = (
/turf/template_noop,
/area/template_noop)
"ab" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ac" = (
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating,
@@ -9,17 +16,7 @@
"ad" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"af" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ag" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"ah" = (
"ae" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
@@ -30,8 +27,21 @@
name = "Meta emergency shuttle";
width = 25
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"af" = (
/obj/machinery/door/airlock/external{
name = "Emergency Recovery Airlock"
},
/obj/effect/decal/cleanable/dirt,
/obj/structure/fans/tiny,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"ag" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"al" = (
/obj/structure/table,
/obj/item/phone{
@@ -513,7 +523,6 @@
/area/shuttle/escape)
"bz" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/obj/machinery/light{
dir = 8
},
@@ -576,25 +585,12 @@
/area/shuttle/escape)
"bH" = (
/obj/structure/table,
/obj/item/scalpel{
pixel_y = 12
},
/obj/item/circular_saw,
/obj/item/retractor{
pixel_x = 4
},
/obj/item/hemostat{
pixel_x = -4
},
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/item/radio/intercom{
dir = 2;
name = "Station Intercom (General)";
pixel_x = -27
},
/obj/item/surgicaldrill,
/obj/item/cautery,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"bI" = (
@@ -939,7 +935,7 @@ be
cc
be
be
bf
af
"}
(6,1,1) = {"
ac
@@ -955,7 +951,7 @@ bf
bT
be
be
bf
af
"}
(7,1,1) = {"
ac
@@ -1038,7 +1034,7 @@ bF
ac
"}
(12,1,1) = {"
af
ab
LY
LY
aE
@@ -1070,7 +1066,7 @@ ad
ad
"}
(14,1,1) = {"
af
ab
LY
LY
aE
@@ -1166,7 +1162,7 @@ bM
ad
"}
(20,1,1) = {"
ah
ae
LY
LY
aE
@@ -1198,7 +1194,7 @@ bO
ac
"}
(22,1,1) = {"
af
ab
LY
LY
LY
+16 -14
View File
@@ -113,6 +113,21 @@
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"v" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
dir = 8;
dwidth = 8;
height = 9;
name = "Mini emergency shuttle";
width = 21
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"x" = (
@@ -145,19 +160,6 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"B" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
dir = 8;
dwidth = 8;
height = 9;
name = "Mini emergency shuttle";
width = 21
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"D" = (
/obj/structure/table,
/obj/item/storage/firstaid/fire,
@@ -453,7 +455,7 @@ b
n
b
b
B
v
b
b
b
+32 -30
View File
@@ -6,7 +6,8 @@
/turf/closed/wall/mineral/cult,
/area/shuttle/escape)
"c" = (
/obj/effect/forcefield/cult,
/obj/machinery/door/airlock/cult/friendly,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"d" = (
@@ -125,6 +126,10 @@
/area/shuttle/escape)
"x" = (
/obj/machinery/door/airlock/cult/friendly,
/obj/docking_port/mobile/emergency{
name = "shuttle 667"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"y" = (
@@ -156,13 +161,6 @@
/obj/effect/decal/remains/human,
/turf/open/floor/plasteel/cult,
/area/shuttle/escape)
"E" = (
/obj/machinery/door/airlock/cult/friendly,
/obj/docking_port/mobile/emergency{
name = "shuttle 667"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"F" = (
/obj/effect/decal/cleanable/blood/gibs/down,
/turf/open/floor/plasteel/cult,
@@ -262,6 +260,10 @@
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
"W" = (
/obj/effect/spawner/structure/window/plastitanium,
/turf/open/floor/plating,
/area/shuttle/escape)
(1,1,1) = {"
a
@@ -271,17 +273,17 @@ a
b
b
b
x
b
E
b
c
c
c
b
x
b
x
W
W
W
b
c
b
c
b
b
b
@@ -336,7 +338,7 @@ U
V
"}
(4,1,1) = {"
c
W
d
i
n
@@ -360,7 +362,7 @@ U
V
"}
(5,1,1) = {"
c
W
e
j
o
@@ -384,7 +386,7 @@ U
V
"}
(6,1,1) = {"
c
W
f
j
j
@@ -408,7 +410,7 @@ U
V
"}
(7,1,1) = {"
c
W
e
j
j
@@ -424,7 +426,7 @@ j
j
K
L
c
W
t
j
t
@@ -432,7 +434,7 @@ U
V
"}
(8,1,1) = {"
c
W
g
k
k
@@ -472,7 +474,7 @@ A
j
j
j
c
W
j
j
j
@@ -496,7 +498,7 @@ j
j
j
M
c
W
P
Q
P
@@ -509,21 +511,21 @@ a
a
a
b
c
W
b
c
W
b
b
b
c
c
c
W
W
W
b
b
b
c
W
b
c
W
b
a
"}
+11 -22
View File
@@ -185,6 +185,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"ar" = (
@@ -287,6 +288,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"az" = (
@@ -509,6 +511,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 4
},
/obj/structure/fans/tiny,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"aQ" = (
@@ -782,41 +785,27 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bn" = (
/obj/item/scalpel{
pixel_y = 12
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/item/circular_saw,
/obj/item/retractor{
pixel_x = 4
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/item/hemostat{
pixel_x = -4
},
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/structure/table/reinforced,
/obj/structure/extinguisher_cabinet{
pixel_x = -24
},
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/item/cautery,
/obj/item/surgicaldrill,
/obj/item/storage/backpack/duffelbag/med/surgery,
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"bo" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"bp" = (
+68 -58
View File
@@ -58,6 +58,29 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"am" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"an" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
dir = 8;
dwidth = 27;
height = 8;
name = "PubbyStation emergency shuttle";
port_direction = 4;
preferred_direction = 1;
width = 46
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ap" = (
/obj/structure/chair/comfy,
/obj/machinery/computer/security/telescreen/entertainment{
@@ -133,12 +156,6 @@
"ax" = (
/turf/open/floor/mineral/plastitanium/red/brig,
/area/shuttle/escape)
"ay" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"az" = (
/obj/structure/chair/comfy{
dir = 1
@@ -440,14 +457,12 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"aZ" = (
/obj/structure/table/glass,
/obj/machinery/sleeper,
/obj/machinery/light{
dir = 1
},
/obj/item/storage/firstaid/regular,
/obj/structure/window/reinforced{
dir = 4;
layer = 2.9
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -487,13 +502,18 @@
/turf/open/floor/plasteel/cafeteria,
/area/shuttle/escape)
"be" = (
/obj/structure/chair/comfy/shuttle,
/obj/effect/turf_decal/tile/blue{
dir = 4
/obj/structure/table,
/obj/item/storage/firstaid,
/obj/item/storage/firstaid/fire{
pixel_x = -3;
pixel_y = 3
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"bf" = (
@@ -509,30 +529,12 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"bh" = (
/obj/structure/window/reinforced,
/obj/structure/table/glass,
/obj/item/defibrillator/loaded,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"bi" = (
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/table/glass,
/obj/item/storage/firstaid/regular,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"bj" = (
@@ -551,11 +553,8 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"bn" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
},
/obj/structure/reagent_dispensers/fueltank,
/obj/machinery/light,
/obj/item/storage/toolbox/mechanical,
/turf/open/floor/plating,
/area/shuttle/escape)
"bo" = (
@@ -675,21 +674,6 @@
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bL" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
dir = 8;
dwidth = 27;
height = 8;
name = "PubbyStation emergency shuttle";
port_direction = 4;
preferred_direction = 1;
width = 46
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bO" = (
/obj/machinery/door/airlock/public/glass{
name = "Cockpit";
@@ -710,6 +694,21 @@
},
/turf/open/floor/plating,
/area/shuttle/escape)
"sI" = (
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 4
},
/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/structure/table,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"xt" = (
/obj/structure/window/reinforced{
dir = 8;
@@ -717,6 +716,17 @@
},
/turf/open/floor/plating,
/area/shuttle/escape)
"Jw" = (
/obj/structure/window/reinforced,
/obj/structure/table/optable,
/obj/effect/turf_decal/tile/blue{
dir = 8
},
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/turf/open/floor/plasteel/white,
/area/shuttle/escape)
"Uu" = (
/obj/structure/window/reinforced{
dir = 4
@@ -804,9 +814,9 @@ aX
bb
be
bh
Jw
bg
bl
bg
bg
ab
aa
bs
@@ -851,8 +861,8 @@ ab
aZ
bb
bb
bi
bl
bh
sI
bg
bn
ab
@@ -1071,17 +1081,17 @@ ab
ab
ab
ab
ay
am
ab
ay
am
ab
ab
aa
ab
ab
bL
an
ab
ay
am
ab
ac
ab
+23 -29
View File
@@ -149,9 +149,6 @@
/area/shuttle/escape)
"as" = (
/obj/structure/table/optable,
/obj/item/surgical_drapes,
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/effect/turf_decal/tile/purple{
dir = 1
},
@@ -228,18 +225,13 @@
/area/shuttle/escape)
"aB" = (
/obj/structure/table/reinforced,
/obj/item/scalpel,
/obj/item/circular_saw,
/obj/item/retractor,
/obj/item/hemostat,
/obj/item/storage/backpack/duffelbag/med/surgery,
/obj/effect/turf_decal/tile/purple{
dir = 1
},
/obj/effect/turf_decal/tile/purple{
dir = 8
},
/obj/item/surgicaldrill,
/obj/item/cautery,
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"aC" = (
@@ -427,6 +419,22 @@
"aW" = (
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/escape)
"aX" = (
/obj/machinery/door/airlock/hatch,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aY" = (
/obj/docking_port/mobile/emergency{
dwidth = 14;
height = 18;
name = "CentCom Raven Battlecruiser";
width = 32
},
/obj/machinery/door/airlock/hatch,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aZ" = (
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
@@ -761,16 +769,6 @@
},
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"bE" = (
/obj/docking_port/mobile/emergency{
dwidth = 14;
height = 18;
name = "CentCom Raven Battlecruiser";
width = 32
},
/obj/machinery/door/airlock/hatch,
/turf/open/floor/plating,
/area/shuttle/escape)
"bF" = (
/obj/effect/turf_decal/tile/green{
dir = 1
@@ -1331,10 +1329,6 @@
"eP" = (
/turf/closed/wall/mineral/plastitanium/nodiagonal,
/area/shuttle/escape)
"UQ" = (
/obj/machinery/door/airlock/hatch,
/turf/open/floor/plating,
/area/shuttle/escape)
(1,1,1) = {"
aa
@@ -1349,17 +1343,17 @@ bJ
cs
bJ
bJ
UQ
aX
cs
bE
aY
bJ
bJ
cs
ad
aa
UQ
aX
bJ
UQ
aX
cs
bJ
cs
@@ -1893,7 +1887,7 @@ bJ
bJ
bJ
cs
cs
en
ad
ad
ad
@@ -1909,7 +1903,7 @@ ab
bJ
bJ
cs
cs
en
ad
ad
ad
+148 -84
View File
@@ -235,6 +235,7 @@
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aP" = (
@@ -282,6 +283,7 @@
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aX" = (
@@ -375,7 +377,9 @@
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/escape)
"bk" = (
/obj/structure/kitchenspike,
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"bl" = (
@@ -420,6 +424,7 @@
/obj/machinery/door/airlock/security/glass{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"bs" = (
@@ -460,13 +465,10 @@
/turf/open/floor/plating,
/area/shuttle/escape)
"bz" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 27
},
/turf/open/floor/plating,
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"bA" = (
/obj/structure/closet/emcloset,
/obj/machinery/sleeper,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/shuttle/escape)
@@ -487,17 +489,12 @@
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bD" = (
/obj/machinery/sleeper{
dir = 8
},
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/obj/structure/closet/emcloset,
/turf/open/floor/mineral/plastitanium/red,
/area/shuttle/escape)
"bE" = (
/obj/machinery/sleeper{
dir = 4
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/sleeper,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"bF" = (
@@ -567,13 +564,6 @@
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"bP" = (
/obj/structure/kitchenspike,
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/mineral/plastitanium,
/area/shuttle/escape)
"bQ" = (
/obj/machinery/light,
/turf/open/floor/mineral/plastitanium/red,
@@ -584,6 +574,56 @@
},
/turf/open/floor/plating,
/area/shuttle/escape)
"bS" = (
/obj/structure/kitchenspike,
/turf/open/floor/plating,
/area/shuttle/escape)
"bT" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 27
},
/obj/structure/kitchenspike,
/turf/open/floor/plating,
/area/shuttle/escape)
"bU" = (
/obj/machinery/vending/sovietsoda,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"ca" = (
/obj/structure/shuttle/engine/heater,
/obj/structure/window/reinforced{
dir = 1
},
/turf/open/floor/plating,
/area/shuttle/escape)
"cb" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating,
/area/shuttle/escape)
"cd" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"ce" = (
/obj/structure/table/optable,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"cf" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table,
/obj/item/storage/backpack/duffelbag/med/surgery,
/turf/open/floor/plasteel,
/area/shuttle/escape)
"cg" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small{
brightness = 3;
dir = 8
},
/turf/open/floor/plasteel,
/area/shuttle/escape)
(1,1,1) = {"
aa
@@ -712,7 +752,7 @@ aj
ao
ad
aw
ax
aR
ax
aR
ax
@@ -721,9 +761,9 @@ ax
aR
ax
bj
ax
aR
ab
by
bS
bx
bI
bK
@@ -736,6 +776,30 @@ ak
ak
at
ax
aR
ax
ax
ax
aR
aR
aR
aR
aR
ax
ab
bT
bx
bI
ca
cb
"}
(8,1,1) = {"
ac
ag
ak
ap
ab
ax
aJ
aJ
aJ
@@ -745,30 +809,6 @@ ax
bc
bc
bc
ax
ab
bz
bx
bI
bK
bL
"}
(8,1,1) = {"
ac
ag
ak
ap
ab
ay
ay
ay
aS
aY
bf
ax
ax
ax
ax
bQ
bv
ad
@@ -783,6 +823,30 @@ af
al
aq
au
ay
ay
ay
aS
aY
bf
ax
ax
ax
ax
ax
ad
bA
cg
ce
bK
bL
"}
(10,1,1) = {"
ac
bU
ak
aq
au
az
aK
aQ
@@ -792,16 +856,16 @@ ax
ax
bl
ax
ax
bD
ax
ad
bA
bE
bA
bB
bJ
bK
bL
"}
(10,1,1) = {"
(11,1,1) = {"
ac
ah
ak
@@ -821,16 +885,16 @@ ax
ac
bB
bB
bJ
cf
bK
bL
"}
(11,1,1) = {"
(12,1,1) = {"
ad
ab
am
ar
au
ac
aB
aA
aA
@@ -849,12 +913,12 @@ bB
bK
bL
"}
(12,1,1) = {"
(13,1,1) = {"
aa
ad
ab
ad
as
bv
aC
aK
bM
@@ -869,11 +933,11 @@ ax
ac
bB
bB
bD
bF
ad
ad
"}
(13,1,1) = {"
(14,1,1) = {"
aa
aa
aa
@@ -892,41 +956,41 @@ ax
ax
ad
bC
bF
cd
ad
ad
aa
"}
(14,1,1) = {"
aa
aa
aa
aa
ab
aE
aN
aN
aV
aD
bi
bk
bk
bk
bP
bt
ab
bD
ab
ad
aa
aa
"}
(15,1,1) = {"
aa
aa
aa
aa
ad
aE
aN
aN
aV
aD
bi
bz
bz
bz
bk
bt
ab
cd
ab
ad
aa
aa
"}
(16,1,1) = {"
aa
aa
aa
aa
aa
aD
aE
aE
+4
View File
@@ -106,6 +106,7 @@
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"at" = (
@@ -174,6 +175,7 @@
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aD" = (
@@ -227,6 +229,7 @@
/obj/docking_port/mobile/emergency{
name = "Scrapheap Challenge"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aL" = (
@@ -309,6 +312,7 @@
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ba" = (
+30 -27
View File
@@ -2,6 +2,13 @@
"aa" = (
/turf/template_noop,
/area/template_noop)
"ab" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ac" = (
/obj/structure/sign/warning/radiation,
/turf/closed/wall/mineral/titanium,
@@ -13,6 +20,16 @@
"ae" = (
/turf/closed/wall/mineral/titanium,
/area/shuttle/escape)
"af" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "Hyperfractal Gigashuttle"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ag" = (
/obj/structure/closet/radiation{
anchored = 1
@@ -33,6 +50,14 @@
},
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"ak" = (
/obj/machinery/door/airlock/external{
name = "Emergency Launch Catwalk";
req_access_txt = "10;13"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"al" = (
/obj/machinery/shower{
dir = 8
@@ -101,12 +126,6 @@
"ax" = (
/turf/closed/wall/mineral/titanium/interior,
/area/shuttle/escape)
"aA" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aB" = (
/obj/machinery/power/supermatter_crystal/shard/hugbox/fakecrystal,
/turf/open/floor/plating,
@@ -125,26 +144,10 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/mineral/titanium/yellow,
/area/shuttle/escape)
"aF" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
name = "Hyperfractal Gigashuttle"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aI" = (
/obj/structure/sign/warning/radiation,
/turf/closed/wall/mineral/titanium/nodiagonal,
/area/shuttle/escape)
"aL" = (
/obj/machinery/door/airlock/external{
name = "Emergency Launch Catwalk";
req_access_txt = "10;13"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aM" = (
/turf/open/floor/plating/airless,
/area/shuttle/escape)
@@ -348,9 +351,9 @@ aa
aa
aa
aw
aA
ab
ac
aF
af
aw
aa
aa
@@ -472,7 +475,7 @@ aB
bf
at
at
aL
ak
aM
aM
hD
@@ -588,9 +591,9 @@ aa
aa
aa
aw
aA
ab
ac
aA
ab
aw
aa
aa
+17 -35
View File
@@ -116,7 +116,6 @@
id = "shuttleshutters";
name = "Bridge Blast Shutters";
pixel_x = -26;
pixel_y = 0;
req_access_txt = "19"
},
/obj/effect/turf_decal/tile/neutral{
@@ -199,8 +198,7 @@
/obj/item/radio/intercom{
dir = 4;
name = "Station Intercom (General)";
pixel_x = 27;
pixel_y = 0
pixel_x = 27
},
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
@@ -309,8 +307,7 @@
/obj/item/radio/intercom{
dir = 4;
name = "Station Intercom (General)";
pixel_x = -27;
pixel_y = 0
pixel_x = -27
},
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
@@ -408,7 +405,6 @@
id = "smindicate";
name = "external door control";
pixel_x = 26;
pixel_y = 0;
req_access_txt = "150"
},
/obj/structure/fans/tiny,
@@ -420,8 +416,7 @@
/obj/item/radio/intercom{
dir = 4;
name = "Station Intercom (General)";
pixel_x = 27;
pixel_y = 0
pixel_x = 27
},
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
@@ -878,6 +873,7 @@
/area/shuttle/escape)
"bz" = (
/obj/machinery/door/airlock/hatch,
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"bA" = (
@@ -991,6 +987,7 @@
/obj/docking_port/mobile/emergency{
name = "Syndicate Battlecruiser"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"bL" = (
@@ -1064,10 +1061,7 @@
/area/shuttle/escape)
"bR" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/drinkingglasses{
pixel_x = 0;
pixel_y = 0
},
/obj/item/storage/box/drinkingglasses,
/obj/item/storage/box/drinkingglasses{
pixel_x = -3;
pixel_y = 3
@@ -1499,8 +1493,7 @@
/obj/item/radio/intercom{
dir = 4;
name = "Station Intercom (General)";
pixel_x = 27;
pixel_y = 0
pixel_x = 27
},
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
@@ -1606,8 +1599,7 @@
/obj/item/radio/intercom{
dir = 4;
name = "Station Intercom (General)";
pixel_x = 27;
pixel_y = 0
pixel_x = 27
},
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
@@ -1634,10 +1626,7 @@
pixel_x = 3;
pixel_y = -3
},
/obj/item/storage/toolbox/emergency{
pixel_x = 0;
pixel_y = 0
},
/obj/item/storage/toolbox/emergency,
/obj/item/storage/toolbox/syndicate{
pixel_x = -3;
pixel_y = 3
@@ -1717,38 +1706,31 @@
/obj/structure/window/reinforced{
dir = 8
},
/obj/item/retractor,
/obj/item/hemostat,
/obj/item/cautery,
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
/obj/item/storage/backpack/duffelbag/med/surgery,
/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/shuttle/escape)
"cI" = (
/obj/structure/table/reinforced,
/obj/item/circular_saw,
/obj/item/surgicaldrill,
/obj/item/scalpel{
pixel_y = 15
},
/obj/effect/turf_decal/tile/neutral,
/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{
dir = 1
},
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"cJ" = (
+52 -91
View File
@@ -119,12 +119,7 @@
/area/shuttle/escape)
"ar" = (
/obj/structure/table,
/obj/item/storage/firstaid/fire,
/obj/item/storage/firstaid/regular{
pixel_x = 2;
pixel_y = 3
},
/obj/item/crowbar,
/obj/item/storage/toolbox/mechanical,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"as" = (
@@ -166,6 +161,7 @@
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"ay" = (
@@ -206,22 +202,23 @@
/obj/docking_port/mobile/emergency{
name = "NT Lepton Violet"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aF" = (
/obj/machinery/door/window/eastleft,
/turf/open/floor/mineral/titanium,
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/shuttle/escape)
"aG" = (
/obj/machinery/sleeper{
dir = 8
},
/obj/structure/extinguisher_cabinet{
pixel_x = 27
},
/obj/structure/table/glass,
/obj/item/storage/box/syringes{
pixel_x = 3;
pixel_y = 3
},
/obj/item/storage/box/beakers,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aH" = (
@@ -244,72 +241,36 @@
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aK" = (
/obj/machinery/sleeper{
dir = 4
/obj/structure/table,
/obj/item/storage/firstaid/regular{
pixel_x = 2;
pixel_y = 3
},
/obj/item/storage/firstaid/fire,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aL" = (
/obj/structure/table/reinforced,
/turf/open/floor/mineral/titanium,
/obj/structure/table,
/obj/item/storage/backpack/duffelbag/med/surgery,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aM" = (
/obj/machinery/chem_dispenser,
/obj/machinery/light/small{
/obj/structure/chair/comfy/shuttle{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aN" = (
/obj/structure/table,
/obj/item/storage/toolbox/mechanical,
/obj/item/storage/firstaid/regular{
pixel_x = -1;
pixel_y = 1
},
/obj/item/wrench/medical,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aO" = (
/turf/open/floor/plating,
/area/shuttle/escape)
"aP" = (
/obj/structure/chair/office/light{
/obj/structure/window/reinforced{
dir = 8
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aQ" = (
/obj/machinery/chem_heater,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aR" = (
/obj/machinery/chem_master,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aS" = (
/obj/machinery/door/window/eastright,
/turf/open/floor/mineral/titanium,
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"aT" = (
/obj/structure/table/glass,
/obj/item/reagent_containers/glass/bottle/epinephrine{
pixel_x = 2;
pixel_y = 2
},
/obj/item/reagent_containers/glass/bottle/charcoal,
/obj/structure/table/optable,
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"aU" = (
/obj/machinery/door/airlock/public/glass,
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"aV" = (
/obj/machinery/door/airlock/titanium{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aW" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -517,21 +478,21 @@
},
/turf/open/floor/mineral/titanium,
/area/shuttle/escape)
"cF" = (
/obj/machinery/sleeper{
dir = 8
},
/obj/machinery/light/small{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"ji" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/turf/open/floor/mineral/titanium/blue,
/area/shuttle/escape)
"Ec" = (
/obj/structure/chair/comfy/shuttle{
dir = 8
},
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/mineral/titanium/white,
/area/shuttle/escape)
"MK" = (
/obj/structure/chair/comfy/shuttle,
/turf/open/floor/mineral/titanium/blue,
@@ -553,9 +514,9 @@ as
as
as
ab
aV
aF
ab
aV
aF
ab
ab
ab
@@ -644,9 +605,9 @@ ab
ab
ab
aq
aK
aN
aK
aM
aM
aM
aq
ab
ji
@@ -673,10 +634,10 @@ aq
aq
bn
aH
ab
ab
ab
ab
as
as
as
as
be
bf
bg
@@ -691,11 +652,11 @@ ao
au
az
ab
aF
Ec
aq
Ec
aS
aJ
aJ
aJ
aq
as
aI
aI
@@ -716,9 +677,9 @@ av
aA
ab
aq
aL
aO
aL
aM
aM
aM
aq
aU
aq
@@ -741,7 +702,7 @@ aq
aC
aq
aq
aP
aq
aq
aq
as
@@ -764,9 +725,9 @@ aw
aw
ab
aG
aM
aQ
aR
aK
cF
aL
aT
as
MK
+3
View File
@@ -11,6 +11,7 @@
/area/shuttle/transport)
"d" = (
/obj/machinery/door/airlock/external,
/obj/structure/fans/tiny,
/turf/open/floor/pod/dark,
/area/shuttle/transport)
"e" = (
@@ -74,6 +75,7 @@
preferred_direction = 4;
width = 5
},
/obj/structure/fans/tiny,
/turf/open/floor/pod/light,
/area/shuttle/transport)
"o" = (
@@ -98,6 +100,7 @@
/area/shuttle/transport)
"r" = (
/obj/machinery/door/airlock/external,
/obj/structure/fans/tiny,
/turf/open/floor/pod/light,
/area/shuttle/transport)
+1
View File
@@ -105,6 +105,7 @@
#define MATRIXED 22 //if icon is color matrix'd
#define SKINTONE 23 //uses skin tones
#define HORNCOLOR 24
#define WINGCOLOR 25
//organ slots
#define ORGAN_SLOT_BRAIN "brain"
+3 -1
View File
@@ -6,7 +6,7 @@
#define ACCESS_MORGUE 6
#define ACCESS_TOX 7 //R&D department, R&D console, burn chamber on some maps
#define ACCESS_TOX_STORAGE 8 //Toxins storage, burn chamber on some maps
#define ACCESS_GENETICS 9
#define ACCESS_GENETICS 9
#define ACCESS_ENGINE 10 //Engineering area, power monitor, power flow control console
#define ACCESS_ENGINE_EQUIP 11 //APCs, EngiVend/YouTool, engineering equipment lockers
#define ACCESS_MAINT_TUNNELS 12
@@ -64,6 +64,8 @@
#define ACCESS_WEAPONS 66 //Weapon authorization for secbots
#define ACCESS_NETWORK 67 //NTnet diagnostics/monitoring software
#define ACCESS_CLONING 68 //Cloning room and clone pod ejection
#define ACCESS_ENTER_GENPOP 69
#define ACCESS_LEAVE_GENPOP 70
//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
+1
View File
@@ -8,6 +8,7 @@
GLOBAL_VAR_INIT(clockwork_construction_value, 0) //The total value of all structures built by the clockwork cult
GLOBAL_VAR_INIT(clockwork_vitality, 0) //How much Vitality is stored, total
GLOBAL_VAR_INIT(clockwork_power, 0) //How many watts of power are globally available to the clockwork cult
GLOBAL_VAR_INIT(neovgre_exists, 0) //Does neovgre exist?
GLOBAL_LIST_EMPTY(all_clockwork_objects) //All clockwork items, structures, and effects in existence
GLOBAL_LIST_EMPTY(all_clockwork_mobs) //All clockwork SERVANTS (not creatures) in existence
+3 -1
View File
@@ -33,4 +33,6 @@
#define MOVESPEED_ID_SANITY "MOOD_SANITY"
#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG"
#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
#define MOVESPEED_ID_TASED_STATUS "TASED"
+10 -37
View File
@@ -31,41 +31,14 @@
#define STIMULUM_RESEARCH_AMOUNT 50
//Plasma fusion properties
#define FUSION_ENERGY_THRESHOLD 3e9 //Amount of energy it takes to start a fusion reaction
#define FUSION_TEMPERATURE_THRESHOLD 1000 //Temperature required to start a fusion reaction
#define FUSION_MOLE_THRESHOLD 250 //Mole count required (tritium/plasma) to start a fusion reaction
#define FUSION_RELEASE_ENERGY_SUPER 3e9 //Amount of energy released in the fusion process, super tier
#define FUSION_RELEASE_ENERGY_HIGH 1e9 //Amount of energy released in the fusion process, high tier
#define FUSION_RELEASE_ENERGY_MID 5e8 //Amount of energy released in the fusion process, mid tier
#define FUSION_RELEASE_ENERGY_LOW 1e8 //Amount of energy released in the fusion process, low tier
#define FUSION_MEDIATION_FACTOR 80 //Arbitrary
#define FUSION_SUPER_TIER_THRESHOLD 50 //anything above this is super tier
#define FUSION_HIGH_TIER_THRESHOLD 20 //anything above this and below 50 is high tier
#define FUSION_MID_TIER_THRESHOLD 5 //anything above this and below 20 is mid tier - below this is low tier, but that doesnt need a define
#define FUSION_ENERGY_DIVISOR_SUPER 25 //power_ratio is divided by this during energy calculations
#define FUSION_ENERGY_DIVISOR_HIGH 20
#define FUSION_ENERGY_DIVISOR_MID 10
#define FUSION_ENERGY_DIVISOR_LOW 2
#define FUSION_GAS_CREATION_FACTOR_TRITIUM 0.40 //trit - one gas rather than two, so think about that when calculating stuff - 40% in total
#define FUSION_GAS_CREATION_FACTOR_STIM 0.05 //stim percentage creation from high tier - 5%, 60% in total with pluox
#define FUSION_GAS_CREATION_FACTOR_PLUOX 0.55 //pluox percentage creation from high tier - 55%, 60% in total with stim
#define FUSION_GAS_CREATION_FACTOR_NITRYL 0.20 //nitryl and N2O - 80% in total
#define FUSION_GAS_CREATION_FACTOR_N2O 0.60 //nitryl and N2O - 80% in total
#define FUSION_GAS_CREATION_FACTOR_BZ 0.05 //BZ - 5% - 90% in total with CO2
#define FUSION_GAS_CREATION_FACTOR_CO2 0.85 //CO2 - 85% - 90% in total with BZ
#define FUSION_MID_TIER_RAD_PROB_FACTOR 2 //probability of radpulse is power ratio * this for whatever tier
#define FUSION_LOW_TIER_RAD_PROB_FACTOR 5
#define FUSION_EFFICIENCY_BASE 60 //used in the fusion efficiency calculations
#define FUSION_EFFICIENCY_DIVISOR 0.6 //ditto
#define FUSION_RADIATION_FACTOR 15000 //horizontal asymptote
#define FUSION_RADIATION_CONSTANT 30 //equation is form of (ax) / (x + b), where a = radiation factor and b = radiation constant and x = power ratio (https://www.desmos.com/calculator/4i1f296phl)
#define FUSION_ZAP_POWER_ASYMPTOTE 50000 //maximum value - not enough to instacrit but it'll still hurt like shit
#define FUSION_ZAP_POWER_CONSTANT 75 //equation is of from [ax / (x + b)] + c, where a = zap power asymptote, b = zap power constant, c = zap power base and x = power ratio
#define FUSION_ZAP_POWER_BASE 1000 //(https://www.desmos.com/calculator/vvbmhf4unm)
#define FUSION_ZAP_RANGE_SUPER 9 //range of the tesla zaps that occur from fusion
#define FUSION_ZAP_RANGE_HIGH 7
#define FUSION_ZAP_RANGE_MID 5
#define FUSION_ZAP_RANGE_LOW 3
#define FUSION_PARTICLE_FACTOR_SUPER 4 //# of particles fired out is equal to rand(3,6) * this for whatever tier
#define FUSION_PARTICLE_FACTOR_HIGH 3
#define FUSION_PARTICLE_FACTOR_MID 2
#define FUSION_PARTICLE_FACTOR_LOW 1
#define FUSION_TRITIUM_CONVERSION_COEFFICIENT (1e-10)
#define INSTABILITY_GAS_POWER_FACTOR 0.003
#define FUSION_TRITIUM_MOLES_USED 1
#define PLASMA_BINDING_ENERGY 20000000
#define TOROID_VOLUME_BREAKEVEN 1000
#define FUSION_TEMPERATURE_THRESHOLD 10000
#define PARTICLE_CHANCE_CONSTANT (-20000000)
#define FUSION_RAD_MAX 2000
#define FUSION_RAD_COEFFICIENT (-1000)
#define FUSION_INSTABILITY_ENDOTHERMALITY 2
+4
View File
@@ -50,3 +50,7 @@
#define ASSEMBLY_THIRD_STEP 2
#define ASSEMBLY_FOURTH_STEP 3
#define ASSEMBLY_FIFTH_STEP 4
//Checks to determine borg availability depending on the server's config. These are defines in the interest of reducing copypasta
#define BORG_SEC_AVAILABLE (!CONFIG_GET(flag/disable_secborg) && GLOB.security_level >= CONFIG_GET(number/minimum_secborg_alert))
+2
View File
@@ -44,6 +44,8 @@
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep
#define STATUS_EFFECT_TASED /datum/status_effect/electrode //the affected has been tased, preventing fine muscle control
#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions
#define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run
+6
View File
@@ -400,6 +400,12 @@ GLOBAL_LIST_EMPTY(species_list)
. = 0
break
if(isliving(user))
var/mob/living/L = user
if(L.recoveringstam)
. = 0
break
if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc))
if((Uloc != Tloc || Tloc != user) && !drifting)
. = 0
@@ -70,6 +70,9 @@
/datum/config_entry/flag/disable_peaceborg
/datum/config_entry/number/minimum_secborg_alert //Minimum alert level for secborgs to be chosen.
config_entry_value = 3
/datum/config_entry/number/traitor_scaling_coeff //how much does the amount of players get divided by to determine traitors
config_entry_value = 6
min_val = 1
@@ -56,7 +56,7 @@
/obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector,
/obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper,
/obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini,
/obj/item/firing_pin
/obj/item/firing_pin, /obj/item/gun/ballistic/automatic/pistol/mag
))
/datum/component/storage/concrete/pockets/shoes/clown/Initialize()
+19 -8
View File
@@ -177,8 +177,8 @@
/datum/map_template/shuttle/emergency/airless
suffix = "airless"
name = "Build your own shuttle kit"
description = "Save money by building your own shuttle! The chassis will dock upon purchase, but launch will have to be authorized as usual via shuttle call. Interior and atmosphere not included."
admin_notes = "No brig, no medical facilities, no air."
description = "Save money by building your own shuttle! The chassis will dock upon purchase, but launch will have to be authorized as usual via shuttle call. Interior and lighting not included."
admin_notes = "No brig, no medical facilities, just an empty box."
credit_cost = -7500
/datum/map_template/shuttle/emergency/airless/prerequisites_met()
@@ -222,9 +222,9 @@
/datum/map_template/shuttle/emergency/luxury
suffix = "luxury"
name = "Luxury Shuttle"
description = "A luxurious golden shuttle complete with an indoor swimming pool. Each crewmember wishing to board must bring 500 credits, payable in cash and mineral coin."
admin_notes = "Due to the limited space for non paying crew, this shuttle may cause a riot."
credit_cost = 10000
description = "A luxurious golden shuttle complete with an indoor swimming pool. Entry is free, so long as you can afford the initial cost."
admin_notes = "Fancy, and very roomy!"
credit_cost = 17500
/datum/map_template/shuttle/emergency/discoinferno
suffix = "discoinferno"
@@ -300,7 +300,7 @@
suffix = "syndicate"
name = "Syndicate GM Battlecruiser"
credit_cost = 20000
description = "Manufactured by the Gorlex Marauders, this cruiser has been specially designed with high occupancy in mind, while remaining robust in combat situations. Features a fully stocked EVA storage, armory, medbay, and bar!"
description = "(Emag only) Manufactured by the Gorlex Marauders, this cruiser has been specially designed with high occupancy in mind, while remaining robust in combat situations. Features a fully stocked EVA storage, armory, medbay, and bar!"
admin_notes = "An emag exclusive, stocked with syndicate equipment and turrets that will target any simplemob."
/datum/map_template/shuttle/emergency/syndicate/prerequisites_met()
@@ -333,7 +333,7 @@
/datum/map_template/shuttle/emergency/supermatter
suffix = "supermatter"
name = "Hyperfractal Gigashuttle"
description = "\"I dunno, this seems kinda needlessly complicated.\"\n\
description = "(Emag only) \"I dunno, this seems kinda needlessly complicated.\"\n\
\"This shuttle has very a very high safety record, according to CentCom Officer Cadet Yins.\"\n\
\"Are you sure?\"\n\
\"Yes, it has a safety record of N-A-N, which is apparently larger than 100%.\""
@@ -341,7 +341,12 @@
Outside of admin intervention, it cannot explode. \
It does, however, still dust anything on contact, emits high levels of radiation, and induce hallucinations in anyone looking at it without protective goggles. \
Emitters spawn powered on, expect admin notices, they are harmless."
credit_cost = 100000
credit_cost = 15000
/datum/map_template/shuttle/emergency/supermatter/prerequisites_met()
if("emagged" in SSshuttle.shuttle_purchase_requirements_met)
return TRUE
return FALSE
/datum/map_template/shuttle/emergency/imfedupwiththisworld
suffix = "imfedupwiththisworld"
@@ -372,6 +377,12 @@
description = "On the smaller size with a modern design, this shuttle is for the crew who like the cosier things, while still being able to stretch their legs."
credit_cost = 1000
/datum/map_template/shuttle/emergency/gorilla
suffix = "gorilla"
name = "Gorilla Cargo Freighter"
description = "A rustic, barely excuseable shuttle transporting important cargo. Not for crew who are about to go ape."
credit_cost = 2000
/datum/map_template/shuttle/ferry/base
suffix = "base"
name = "transport ferry"
+30
View File
@@ -80,6 +80,36 @@
desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are."
icon_state = "asleep"
//TASER
/datum/status_effect/electrode
id = "tased"
blocks_combatmode = TRUE
status_type = STATUS_EFFECT_REPLACE
alert_type = null
/datum/status_effect/electrode/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
duration = set_duration
. = ..()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
if(C.combatmode)
C.toggle_combat_mode(TRUE)
C.add_movespeed_modifier(MOVESPEED_ID_TASED_STATUS, TRUE, override = TRUE, multiplicative_slowdown = 8)
/datum/status_effect/electrode/on_remove()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.remove_movespeed_modifier(MOVESPEED_ID_TASED_STATUS)
. = ..()
/datum/status_effect/electrode/tick()
if(owner)
owner.adjustStaminaLoss(5) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing.
/datum/status_effect/electrode/nextmove_modifier() //why is this a proc. its no big deal since this doesnt get called often at all but literally w h y
return 2
//OTHER DEBUFFS
/datum/status_effect/his_wrath //does minor damage over time unless holding His Grace
id = "his_wrath"
@@ -11,6 +11,7 @@
var/on_remove_on_mob_delete = FALSE //if we call on_remove() when the mob is deleted
var/examine_text //If defined, this text will appear when the mob is examined - to use he, she etc. use "SUBJECTPRONOUN" and replace it in the examines themselves
var/alert_type = /obj/screen/alert/status_effect //the alert thrown by the status effect, contains name and description
var/blocks_combatmode //Does this status effect prevent the user from toggling combat mode?
var/obj/screen/alert/status_effect/linked_alert = null //the alert itself, if it exists
/datum/status_effect/New(list/arguments)
@@ -18,7 +18,7 @@
area_type = /area
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
/area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle)
/area/ai_monitored/turret_protected/ai, /area/storage/emergency/starboard, /area/storage/emergency/port, /area/shuttle, /area/security/prison)
target_trait = ZTRAIT_STATION
immunity_type = "rad"
+1 -1
View File
@@ -575,7 +575,7 @@
if(user)
if(message)
if(authenticated)
if(user.canUseTopic(src, BE_CLOSE))
if(user.canUseTopic(src, !issilicon(user)))
if(!record1 || record1 == active1)
if(!record2 || record2 == active2)
return 1
+1 -1
View File
@@ -801,7 +801,7 @@ What a mess.*/
/obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2)
if(user)
if(authenticated)
if(user.canUseTopic(src, BE_CLOSE))
if(user.canUseTopic(src, !issilicon(user)))
if(!trim(message1))
return 0
if(!record1 || record1 == active1)
+2 -2
View File
@@ -139,7 +139,7 @@
L[avoid_assoc_duplicate_keys(M.real_name, areaindex)] = M
var/desc = input("Please select a location to lock in.", "Locking Computer") as null|anything in L
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) //check if we are still around
if(!user.canUseTopic(src, !issilicon(user), NO_DEXTERY)) //check if we are still around
return
target = L[desc]
if(imp_t)
@@ -167,7 +167,7 @@
to_chat(user, "<span class='alert'>No active connected stations located.</span>")
return
var/desc = input("Please select a station to lock in.", "Locking Computer") as null|anything in L
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERY)) //again, check if we are still around
if(!user.canUseTopic(src, !issilicon(user), NO_DEXTERY)) //again, check if we are still around
return
var/obj/machinery/teleport/station/target_station = L[desc]
if(!target_station || !target_station.teleporter_hub)
@@ -40,6 +40,8 @@
var/stun_projectile = null //stun mode projectile type
var/stun_projectile_sound
var/nonlethal_projectile //projectile to use in stun mode when the target is resting, if any
var/nonlethal_projectile_sound
var/lethal_projectile = null //lethal mode projectile type
var/lethal_projectile_sound
@@ -535,13 +537,22 @@
T = closer
break
var/mob/living/carbon/C
if(iscarbon(target))
C = target
update_icon()
var/obj/item/projectile/A
//any emagged turrets drains 2x power and uses a different projectile?
if(mode == TURRET_STUN)
use_power(reqpower)
A = new stun_projectile(T)
playsound(loc, stun_projectile_sound, 75, 1)
if(nonlethal_projectile && C && C.resting)
use_power(reqpower*0.5)
A = new nonlethal_projectile(T)
playsound(loc, nonlethal_projectile_sound, 75, 1)
else
use_power(reqpower)
A = new stun_projectile(T)
playsound(loc, stun_projectile_sound, 75, 1)
else
use_power(reqpower * 2)
A = new lethal_projectile(T)
@@ -653,6 +664,8 @@
base_icon_state = "standard"
stun_projectile = /obj/item/projectile/energy/electrode
stun_projectile_sound = 'sound/weapons/taser.ogg'
nonlethal_projectile = /obj/item/projectile/beam/disabler
nonlethal_projectile_sound = 'sound/weapons/taser2.ogg'
lethal_projectile = /obj/item/projectile/beam/laser
lethal_projectile_sound = 'sound/weapons/laser.ogg'
desc = "An energy blaster auto-turret."
@@ -662,6 +675,8 @@
base_icon_state = "standard"
stun_projectile = /obj/item/projectile/energy/electrode
stun_projectile_sound = 'sound/weapons/taser.ogg'
nonlethal_projectile = /obj/item/projectile/beam/disabler
nonlethal_projectile_sound = 'sound/weapons/taser2.ogg'
lethal_projectile = /obj/item/projectile/beam/laser/heavylaser
lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg'
desc = "An energy blaster auto-turret."
@@ -681,6 +696,8 @@
/obj/machinery/porta_turret/ai
faction = list("silicon")
nonlethal_projectile = /obj/item/projectile/beam/disabler
nonlethal_projectile_sound = 'sound/weapons/taser2.ogg'
/obj/machinery/porta_turret/ai/assess_perp(mob/living/carbon/human/perp)
return 10 //AI turrets shoot at everything not in their faction
+1 -1
View File
@@ -99,7 +99,7 @@
/obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE)
var/list/to_eat
if(isitem(AM0))
to_eat = AM0.GetAllContents()
to_eat = AM0.GetAllContentsIgnoring(GLOB.typecache_mob)
else
to_eat = list(AM0)
+84
View File
@@ -0,0 +1,84 @@
/obj/machinery/turnstile
name = "turnstile"
desc = "A mechanical door that permits one-way access and prevents tailgating."
icon = 'icons/obj/turnstile.dmi'
icon_state = "turnstile_map"
density = FALSE
armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, bio = 100, rad = 100, fire = 90, acid = 70)
anchored = TRUE
use_power = FALSE
idle_power_usage = 2
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
layer = OPEN_DOOR_LAYER
/obj/machinery/turnstile/Initialize()
. = ..()
icon_state = "turnstile"
/obj/machinery/turnstile/CanAtmosPass(turf/T)
return TRUE
/obj/machinery/turnstile/bullet_act(obj/item/projectile/P, def_zone)
return -1 //Pass through!
/obj/machinery/turnstile/proc/allowed_access(var/mob/B)
if(B.pulledby && ismob(B.pulledby))
return allowed(B.pulledby) | allowed(B)
else
return allowed(B)
/obj/machinery/turnstile/CanPass(atom/movable/AM, turf/T)
if(ismob(AM))
var/mob/B = AM
if(isliving(AM))
var/mob/living/M = AM
if(world.time - M.last_bumped <= 5)
return FALSE
M.last_bumped = world.time
var/allowed_access = FALSE
var/turf/behind = get_step(src, dir)
if(B in behind.contents)
allowed_access = allowed_access(B)
else
to_chat(usr, "<span class='notice'>\the [src] resists your efforts.</span>")
return FALSE
if(allowed_access)
flick("operate", src)
playsound(src,'sound/items/ratchet.ogg',50,0,3)
return TRUE
else
flick("deny", src)
playsound(src,'sound/machines/deniedbeep.ogg',50,0,3)
return FALSE
if(ispath(AM, /obj/item/))
return TRUE
else
return FALSE
/obj/machinery/turnstile/CheckExit(atom/movable/AM as mob|obj, target)
if(isliving(AM))
var/mob/living/M = AM
var/outdir = dir
if(allowed_access(M))
switch(dir)
if(NORTH)
outdir = SOUTH
if(SOUTH)
outdir = NORTH
if(EAST)
outdir = WEST
if(WEST)
outdir = EAST
var/turf/outturf = get_step(src, outdir)
var/canexit = (target == src.loc) | (target == outturf)
if(!canexit && world.time - M.last_bumped <= 5)
to_chat(usr, "<span class='notice'>\the [src] resists your efforts.</span>")
M.last_bumped = world.time
return canexit
else
return TRUE
+96
View File
@@ -0,0 +1,96 @@
/obj/mecha/combat/neovgre
name = "Neovgre, the Anima Bulwark"
desc = "Nezbere's most powerful creation, a mighty war machine of unmatched power said to have ended wars in a single night."
icon = 'icons/mecha/neovgre.dmi'
icon_state = "neovgre"
max_integrity = 500 //This is THE ratvarian superweaon, its deployment is an investment
armor = list("melee" = 50, "bullet" = 40, "laser" = 25, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) //Its similar to the clockwork armour albeit with a few buffs becuase RATVARIAN SUPERWEAPON!!
force = 50 //SMASHY SMASHY!!
internal_damage_threshold = 0
step_in = 3
pixel_x = -16
layer = ABOVE_MOB_LAYER
breach_time = 100 //ten seconds till all goes to shit
recharge_rate = 100
wreckage = /obj/structure/mecha_wreckage/durand/neovgre
/obj/mecha/combat/neovgre/GrantActions(mob/living/user, human_occupant = 0) //No Eject action for you sonny jim, your life for Ratvar!
internals_action.Grant(user, src)
cycle_action.Grant(user, src)
lights_action.Grant(user, src)
stats_action.Grant(user, src)
strafing_action.Grant(user, src)
/obj/mecha/combat/neovgre/RemoveActions(mob/living/user, human_occupant = 0)
internals_action.Remove(user)
cycle_action.Remove(user)
lights_action.Remove(user)
stats_action.Remove(user)
strafing_action.Remove(user)
/obj/mecha/combat/neovgre/MouseDrop_T(mob/M, mob/user)
if(!is_servant_of_ratvar(user))
to_chat(user, "<span class='brass'>BEGONE HERETIC!</span>")
return
else
..()
/obj/mecha/combat/neovgre/moved_inside(mob/living/carbon/human/H)
var/list/Itemlist = H.get_contents()
for(var/obj/item/clockwork/slab/W in Itemlist)
to_chat(H, "<span class='brass'>You safely store [W] inside [src].</span>")
qdel(W)
. = ..()
/obj/mecha/combat/neovgre/obj_destruction()
for(var/mob/M in src)
to_chat(M, "<span class='brass'>You are consumed by the fires raging within Neovgre...</span>")
M.dust()
playsound(src, 'sound/magic/lightning_chargeup.ogg', 100, 0)
src.visible_message("<span class = 'userdanger'>The reactor has gone critical, its going to blow!</span>")
addtimer(CALLBACK(src,.proc/go_critical),breach_time)
/obj/mecha/combat/neovgre/proc/go_critical()
explosion(get_turf(loc), 3, 5, 10, 20, 30)
Destroy(src)
/obj/mecha/combat/neovgre/container_resist(mob/living/user)
to_chat(user, "<span class='brass'>Neovgre requires a lifetime commitment friend, no backing out now!</span>")
return
/obj/mecha/combat/neovgre/process()
..()
if(GLOB.ratvar_awakens) // At this point only timley intervention by lord singulo could hople to stop the superweapon
cell.charge = INFINITY
max_integrity = INFINITY
obj_integrity = max_integrity
CHECK_TICK //Just to be on the safe side lag wise
else if(cell.charge < cell.maxcharge)
for(var/obj/effect/clockwork/sigil/transmission/T in range(SIGIL_ACCESS_RANGE, src))
var/delta = min(recharge_rate, cell.maxcharge - cell.charge)
if (get_clockwork_power() <= delta)
cell.charge += delta
adjust_clockwork_power(-delta)
CHECK_TICK
/obj/mecha/combat/neovgre/Initialize()
.=..()
GLOB.neovgre_exists ++
var/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/N = new
N.attach(src)
/obj/structure/mecha_wreckage/durand/neovgre
name = "\improper Neovgre wreckage?"
desc = "On closer inspection this looks like the wreck of a durand with some spraypainted cardboard duct taped to it!"
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre
equip_cooldown = 8 //Rapid fire heavy laser cannon, simple yet elegant
energy_drain = 30
name = "Aribter Laser Cannon"
desc = "Please re-attach this to neovgre and stop asking questions about why it looks like a normal Nanotrasen issue Solaris laser cannon - Nezbere"
fire_sound = "sound/weapons/neovgre_laser.ogg"
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy/neovgre/can_attach(obj/mecha/combat/neovgre/M)
if(istype(M))
return 1
return 0
+2
View File
@@ -49,6 +49,8 @@
var/lights = FALSE
var/lights_power = 6
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
var/breach_time = 0
var/recharge_rate = 0
var/bumpsmash = 0 //Whether or not the mech destroys walls by running into it.
//inner atmos
+2 -2
View File
@@ -45,8 +45,8 @@
RemoveInfectionImages()
AddInfectionImages()
/obj/item/organ/body_egg/proc/AddInfectionImages()
/obj/item/organ/body_egg/proc/AddInfectionImages(mob/living/carbon/C)
return
/obj/item/organ/body_egg/proc/RemoveInfectionImages()
/obj/item/organ/body_egg/proc/RemoveInfectionImages(mob/living/carbon/C)
return
+32 -3
View File
@@ -342,12 +342,41 @@ update_label("John Doe", "Clowny")
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
assignment = "Prisoner"
registered_name = "Scum"
access = list(ACCESS_ENTER_GENPOP)
//Lavaland labor camp
var/goal = 0 //How far from freedom?
var/points = 0
//Genpop
var/sentence = 0 //When world.time is greater than this number, the card will have its ACCESS_ENTER_GENPOP access replaced with ACCESS_LEAVE_GENPOP the next time it's checked, unless this value is 0/null
var/crime= "\[REDACTED\]"
/obj/item/card/id/prisoner/attack_self(mob/user)
to_chat(usr, "<span class='notice'>You have accumulated [points] out of the [goal] points you need for freedom.</span>")
/obj/item/card/id/prisoner/GetAccess()
if((sentence && world.time >= sentence) || (goal && points >= goal))
access = list(ACCESS_LEAVE_GENPOP)
return ..()
/obj/item/card/id/prisoner/process()
if(!sentence)
STOP_PROCESSING(SSobj, src)
return
if(world.time >= sentence)
playsound(loc, 'sound/machines/ping.ogg', 50, 1)
if(isliving(loc))
to_chat(loc, "<span class='boldnotice'>[src]</span><span class='notice'> buzzes: You have served your sentence! You may now exit prison through the turnstiles and collect your belongings.</span>")
STOP_PROCESSING(SSobj, src)
return
/obj/item/card/id/prisoner/examine(mob/user)
. = ..()
if(sentence && world.time < sentence)
to_chat(user, "<span class='notice'>You're currently serving a sentence for [crime]. <b>[DisplayTimeText(sentence - world.time)]</b> left.</span>")
else if(goal)
to_chat(user, "<span class='notice'>You have accumulated [points] out of the [goal] points you need for freedom.</span>")
else if(!sentence)
to_chat(user, "<span class='warning'>You are currently serving a permanent sentence for [crime].</span>")
else
to_chat(user, "<span class='notice'>Your sentence is up! You're free!</span>")
/obj/item/card/id/prisoner/one
name = "Prisoner #13-001"
+8
View File
@@ -432,6 +432,14 @@
user.mind.teach_crafting_recipe(crafting_recipe_type)
to_chat(user,"<span class='notice'>You learned how to make [initial(R.name)].</span>")
/obj/item/book/granter/crafting_recipe/threads //Durathread crafting book
name = "Credible Threads"
desc = "A simple book about sewing and usefull clothing crafting with cloth and durathreads."
crafting_recipe_types = list(/datum/crafting_recipe/durathread_duffelbag, /datum/crafting_recipe/durathread_toolbelt, /datum/crafting_recipe/durathread_bandolier, /datum/crafting_recipe/durathread_helmet, /datum/crafting_recipe/durathread_vest)
icon_state = "tailers_art1"
oneuse = FALSE
remarks = list("Durathread is cloth thats also fire-resistant?", "Strong threads that can be used with leather for some light weight storage!", "The cloth can withstand a beating it said but not that much...")
/obj/item/book/granter/crafting_recipe/cooking_sweets_101 //We start at 101 for 103 and 105
name = "Cooking Desserts 101"
desc = "A cook book that teaches you some more of the newest desserts. AI approved, and a best seller on Honkplanet."
@@ -174,6 +174,7 @@
gender = PLURAL
var/open_panel = 0
can_attach_mob = TRUE
full_damage_on_mobs = TRUE
/obj/item/grenade/plastic/c4/New()
wires = new /datum/wires/explosive/c4(src)
-54
View File
@@ -82,14 +82,6 @@
/obj/item/banner/security/mundane
inspiration_available = FALSE
/datum/crafting_recipe/security_banner
name = "Securistan Banner"
result = /obj/item/banner/security/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/security = 1)
category = CAT_MISC
/obj/item/banner/medical
name = "meditopia banner"
desc = "The banner of Meditopia, generous benefactors that cure wounds and shelter the weak."
@@ -103,14 +95,6 @@
/obj/item/banner/medical/check_inspiration(mob/living/carbon/human/H)
return H.stat //Meditopia is moved to help those in need
/datum/crafting_recipe/medical_banner
name = "Meditopia Banner"
result = /obj/item/banner/medical/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/medical = 1)
category = CAT_MISC
/obj/item/banner/medical/special_inspiration(mob/living/carbon/human/H)
H.adjustToxLoss(-15)
H.setOxyLoss(0)
@@ -129,14 +113,6 @@
/obj/item/banner/science/check_inspiration(mob/living/carbon/human/H)
return H.on_fire //Sciencia is pleased by dedication to the art of Toxins
/datum/crafting_recipe/science_banner
name = "Sciencia Banner"
result = /obj/item/banner/science/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/scientist = 1)
category = CAT_MISC
/obj/item/banner/cargo
name = "cargonia banner"
desc = "The banner of the eternal Cargonia, with the mystical power of conjuring any object into existence."
@@ -147,14 +123,6 @@
/obj/item/banner/cargo/mundane
inspiration_available = FALSE
/datum/crafting_recipe/cargo_banner
name = "Cargonia Banner"
result = /obj/item/banner/cargo/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/cargotech = 1)
category = CAT_MISC
/obj/item/banner/engineering
name = "engitopia banner"
desc = "The banner of Engitopia, wielders of limitless power."
@@ -168,14 +136,6 @@
/obj/item/banner/engineering/special_inspiration(mob/living/carbon/human/H)
H.radiation = 0
/datum/crafting_recipe/engineering_banner
name = "Engitopia Banner"
result = /obj/item/banner/engineering/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/engineer = 1)
category = CAT_MISC
/obj/item/banner/command
name = "command banner"
desc = "The banner of Command, a staunch and ancient line of bueraucratic kings and queens."
@@ -189,14 +149,6 @@
/obj/item/banner/command/check_inspiration(mob/living/carbon/human/H)
return HAS_TRAIT(H, TRAIT_MINDSHIELD) //Command is stalwart but rewards their allies.
/datum/crafting_recipe/command_banner
name = "Command Banner"
result = /obj/item/banner/command/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/captainparade = 1)
category = CAT_MISC
/obj/item/banner/red
name = "red banner"
icon_state = "banner-red"
@@ -286,7 +238,6 @@
var/staffcooldown = 0
var/staffwait = 30
/obj/item/godstaff/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
if(staffcooldown + staffwait > world.time)
@@ -332,19 +283,16 @@
heat_protection = FEET
max_heat_protection_temperature = SHOES_MAX_TEMP_PROTECT
/obj/item/clothing/shoes/plate/red
icon_state = "crusader-red"
/obj/item/clothing/shoes/plate/blue
icon_state = "crusader-blue"
/obj/item/storage/box/itemset/crusader
name = "Crusader's Armour Set" //i can't into ck2 references
desc = "This armour is said to be based on the armor of kings on another world thousands of years ago, who tended to assassinate, conspire, and plot against everyone who tried to do the same to them. Some things never change."
/obj/item/storage/box/itemset/crusader/blue/New()
..()
contents = list()
@@ -354,7 +302,6 @@
new /obj/item/clothing/gloves/plate/blue(src)
new /obj/item/clothing/shoes/plate/blue(src)
/obj/item/storage/box/itemset/crusader/red/New()
..()
contents = list()
@@ -364,7 +311,6 @@
new /obj/item/clothing/gloves/plate/red(src)
new /obj/item/clothing/shoes/plate/red(src)
/obj/item/claymore/weak
desc = "This one is rusted."
force = 30
@@ -680,7 +680,7 @@
action_icon_state = "Chevron_State_0"
var/currentState = 0
var/maxReduction = 2
var/maxReduction = 1
/obj/effect/proc_holder/silicon/cyborg/vtecControl/Click(mob/living/silicon/robot/user)
@@ -688,14 +688,14 @@
currentState = (currentState + 1) % 3
if(usr)
if(istype(self))
switch(currentState)
if (0)
self.speed = maxReduction
self.speed = initial(self.speed)
if (1)
self.speed -= maxReduction*0.5
self.speed = initial(self.speed) - maxReduction * 0.5
if (2)
self.speed -= maxReduction*1.25
self.speed = initial(self.speed) - maxReduction * 1
action.button_icon_state = "Chevron_State_[currentState]"
action.UpdateButtonIcon()
@@ -0,0 +1,117 @@
/obj/structure/closet/secure_closet/genpop
desc = "It's a secure locker for inmates's personal belongings."
var/default_desc = "It's a secure locker for the storage inmates's personal belongings during their time in prison."
name = "prisoner closet"
var/default_name = "prisoner closet"
req_access = list(ACCESS_BRIG)
var/obj/item/card/id/prisoner/registered_id = null
icon_state = "prisoner"
locked = FALSE
anchored = TRUE
opened = TRUE
density = FALSE
/obj/structure/closet/secure_closet/genpop/attackby(obj/item/W, mob/user, params)
if(!broken && locked && W == registered_id) //Prisoner opening
handle_prisoner_id(user)
return
return ..()
/obj/structure/closet/secure_closet/genpop/proc/handle_prisoner_id(mob/user)
var/obj/item/card/id/prisoner/prisoner_id = null
for(prisoner_id in user.held_items)
if(prisoner_id != registered_id)
prisoner_id = null
else
break
if(!prisoner_id)
to_chat(user, "<span class='danger'>Access Denied.</span>")
return FALSE
qdel(registered_id)
registered_id = null
locked = FALSE
open(user)
desc = "It's a secure locker for prisoner effects."
to_chat(user, "<span class='notice'>You insert your prisoner id into \the [src] and it springs open!</span>")
return TRUE
/obj/structure/closet/secure_closet/genpop/proc/handle_edit_sentence(mob/user)
var/prisoner_name = input(user, "Please input the name of the prisoner.", "Prisoner Name", registered_id.registered_name) as text|null
if(prisoner_name == null | !user.Adjacent(src))
return FALSE
var/sentence_length = input(user, "Please input the length of their sentence in minutes (0 for perma).", "Sentence Length", registered_id.sentence) as num|null
if(sentence_length == null | !user.Adjacent(src))
return FALSE
var/crimes = input(user, "Please input their crimes.", "Crimes", registered_id.crime) as text|null
if(crimes == null | !user.Adjacent(src))
return FALSE
registered_id.registered_name = prisoner_name
var/filteredsentlength = text2num(sentence_length)
registered_id.sentence = filteredsentlength ? (filteredsentlength MINUTES) + world.time : 0
registered_id.crime = crimes
registered_id.update_label(prisoner_name, registered_id.assignment)
if(registered_id.sentence)
START_PROCESSING(SSobj, registered_id)
else
STOP_PROCESSING(SSobj, registered_id)
name = "[default_name] ([prisoner_name])"
desc = "[default_desc] It contains the personal effects of [prisoner_name]."
return TRUE
/obj/structure/closet/secure_closet/genpop/togglelock(mob/living/user)
if(!allowed(user))
return ..()
if(!broken && locked && registered_id != null)
var/name = registered_id.registered_name
var/result = alert(user, "This locker currently contains [name]'s personal belongings ","Locker In Use","Reset","Amend ID", "Open")
if(!user.Adjacent(src))
return
if(result == "Reset")
name = default_name
desc = default_desc
registered_id = null
if(result == "Open" | result == "Reset")
locked = FALSE
open(user)
if(result == "Amend ID")
handle_edit_sentence(user)
else
return ..()
/obj/structure/closet/secure_closet/genpop/close(mob/living/user)
if(registered_id != null)
locked = TRUE
return ..()
/obj/structure/closet/secure_closet/genpop/attack_hand(mob/user)
if(user.lying && get_dist(src, user) > 0)
return
if(!broken && registered_id != null && registered_id in user.held_items)
handle_prisoner_id(user)
return
if(!broken && opened && !locked && allowed(user) && !registered_id) //Genpop setup
registered_id = new /obj/item/card/id/prisoner/(src.contents)
if(handle_edit_sentence(user))
close(user)
locked = TRUE
update_icon()
registered_id.forceMove(src.loc)
new /obj/item/clothing/under/rank/prisoner(src.loc)
else
qdel(registered_id)
registered_id = null
return
..()
@@ -26,7 +26,7 @@
sub_role = "Scientist"
outfit = /datum/outfit/abductor/scientist
landmark_type = /obj/effect/landmark/abductor/scientist
greet_text = "Use your stealth technology and equipment to incapacitate humans for your scientist to retrieve."
greet_text = "Use your experimental console and surgical equipment to monitor your agent and experiment upon abducted humans."
show_in_antagpanel = TRUE
/datum/antagonist/abductor/create_team(datum/team/abductor_team/new_team)
@@ -40,15 +40,14 @@
return team
/datum/antagonist/abductor/on_gain()
owner.special_role = "[name] [sub_role]"
owner.assigned_role = "[name] [sub_role]"
owner.objectives += team.objectives
owner.special_role = "[name]"
owner.assigned_role = "[name]"
objectives += team.objectives
finalize_abductor()
ADD_TRAIT(owner, TRAIT_ABDUCTOR_TRAINING, ABDUCTOR_ANTAGONIST)
return ..()
/datum/antagonist/abductor/on_removal()
owner.objectives -= team.objectives
if(owner.current)
to_chat(owner.current,"<span class='userdanger'>You are no longer the [owner.special_role]!</span>")
owner.special_role = null
@@ -66,6 +65,7 @@
//Equip
var/mob/living/carbon/human/H = owner.current
H.set_species(/datum/species/abductor)
H.real_name = "[team.name] [sub_role]"
H.equipOutfit(outfit)
@@ -99,8 +99,8 @@
else
return
new_owner.add_antag_datum(src)
log_admin("[key_name(usr)] made [key_name(new_owner.current)] [name] on [choice]!")
message_admins("[key_name_admin(usr)] made [key_name_admin(new_owner.current)] [name] on [choice] !")
log_admin("[key_name(usr)] made [key_name(new_owner)] [name] on [choice]!")
message_admins("[key_name_admin(usr)] made [key_name_admin(new_owner)] [name] on [choice] !")
/datum/antagonist/abductor/get_admin_commands()
. = ..()
@@ -153,7 +153,7 @@
result += "<span class='header'>The abductors of [name] were:</span>"
for(var/datum/mind/abductor_mind in members)
result += printplayer(abductor_mind)
result += printobjectives(abductor_mind)
result += printobjectives(objectives)
return "<div class='panel redborder'>[result.Join("<br>")]</div>"
@@ -178,7 +178,6 @@
var/objtype = (prob(75) ? /datum/objective/abductee/random : pick(subtypesof(/datum/objective/abductee/) - /datum/objective/abductee/random))
var/datum/objective/abductee/O = new objtype()
objectives += O
owner.objectives += objectives
/datum/antagonist/abductee/apply_innate_effects(mob/living/mob_override)
update_abductor_icons_added(mob_override ? mob_override.mind : owner,"abductee")
@@ -135,12 +135,14 @@
/obj/item/abductor/proc/AbductorCheck(mob/user)
if(HAS_TRAIT(user, TRAIT_ABDUCTOR_TRAINING))
return TRUE
if (istype(user) && user.mind && HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_TRAINING))
return TRUE
to_chat(user, "<span class='warning'>You can't figure how this works!</span>")
return FALSE
/obj/item/abductor/proc/ScientistCheck(mob/user)
var/training = HAS_TRAIT(user, TRAIT_ABDUCTOR_TRAINING)
var/sci_training = HAS_TRAIT(user, TRAIT_ABDUCTOR_SCIENTIST_TRAINING)
var/training = HAS_TRAIT(user, TRAIT_ABDUCTOR_TRAINING) || (user.mind && HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_TRAINING))
var/sci_training = HAS_TRAIT(user, TRAIT_ABDUCTOR_SCIENTIST_TRAINING) || (user.mind && HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_SCIENTIST_TRAINING))
if(training && !sci_training)
to_chat(user, "<span class='warning'>You're not trained to use this!</span>")
@@ -19,7 +19,7 @@
/obj/item/organ/heart/gland/examine(mob/user)
. = ..()
if(HAS_TRAIT(user, TRAIT_ABDUCTOR_SCIENTIST_TRAINING) || isobserver(user))
if((user.mind && HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_SCIENTIST_TRAINING)) || isobserver(user))
to_chat(user, "<span class='notice'>It is \a [true_name].</span>")
/obj/item/organ/heart/gland/proc/ownerCheck()
@@ -48,19 +48,19 @@
/obj/item/organ/heart/gland/proc/mind_control(command, mob/living/user)
if(!ownerCheck() || !mind_control_uses || active_mind_control)
return
return FALSE
mind_control_uses--
to_chat(owner, "<span class='userdanger'>You suddenly feel an irresistible compulsion to follow an order...</span>")
to_chat(owner, "<span class='mind_control'>[command]</span>")
active_mind_control = TRUE
log_admin("[key_name(user)] sent an abductor mind control message to [key_name(owner)]: [command]")
message_admins("[key_name(user)] sent an abductor mind control message to [key_name(owner)]: [command]")
update_gland_hud()
addtimer(CALLBACK(src, .proc/clear_mind_control), mind_control_duration)
/obj/item/organ/heart/gland/proc/clear_mind_control()
if(!ownerCheck() || !active_mind_control)
return
return FALSE
to_chat(owner, "<span class='userdanger'>You feel the compulsion fade, and you completely forget about your previous orders.</span>")
active_mind_control = FALSE
@@ -28,7 +28,7 @@
. = ..()
if(.)
return
if(!HAS_TRAIT(user, TRAIT_ABDUCTOR_TRAINING))
if(!HAS_TRAIT(user, TRAIT_ABDUCTOR_TRAINING) && !HAS_TRAIT(user.mind, TRAIT_ABDUCTOR_TRAINING))
to_chat(user, "<span class='warning'>You start mashing alien buttons at random!</span>")
if(do_after(user,100, target = src))
TeleporterSend()
@@ -119,3 +119,33 @@
var/datum/clockwork_scripture/create_object/construct/clockwork_marauder/CM = new()
CM.recent_marauders--
qdel(CM)
//Summon Neovgre: Summon a very powerful combat mech that explodes when destroyed for massive damage.
/datum/clockwork_scripture/create_object/summon_arbiter
descname = "Powerful Assault Mech"
name = "Summon Neovgre, the Anima Bulwark"
desc = "Calls forth the mighty Anima Bulwark, a weapon of unmatched power,\
mech with superior defensive and offensive capabilities. It will \
steadily regenerate HP and triple its regeneration speed while standing \
on a clockwork tile. It will automatically draw power from nearby sigils of \
transmission should the need arise. Its Arbiter laser cannon can decimate foes \
from a range and is capable of smashing through any barrier presented to it. \
Be warned, choosing to pilot Neovgre is a lifetime commitment, once you are \
in you cannot leave and when it is destroyed it will explode catastrophically with you inside."
invocations = list("By the strength of the alloy...!!", "...call forth the Arbiter!!")
channel_time = 200 // This is a strong fucking weapon, 20 seconds channel time is getting off light I tell ya.
power_cost = 75000 //75 KW
usage_tip = "Neovgre is a powerful mech that will crush your enemies!"
invokers_required = 5
multiple_invokers_used = TRUE
object_path = /obj/mecha/combat/neovgre
tier = SCRIPTURE_APPLICATION
primary_component = BELLIGERENT_EYE
sort_priority = 2
creator_message = "<span class='brass'>Neovgre, the Anima Bulwark towers over you... your enemies reckoning has come.</span>"
/datum/clockwork_scripture/create_object/summon_arbiter/check_special_requirements()
if(GLOB.neovgre_exists)
to_chat(invoker, "<span class='brass'>\"You've already got one...\"</span>")
return FALSE
return ..()
@@ -238,6 +238,7 @@
T.stop_sound_channel(CHANNEL_HEARTBEAT)
T.invisibility = INVISIBILITY_ABSTRACT
T.dust_animation()
QDEL_IN(T, 5)
var/mob/living/simple_animal/shade/S = new /mob/living/simple_animal/shade(src)
S.status_flags |= GODMODE //So they won't die inside the stone somehow
S.canmove = FALSE//Can't move out of the soul stone
@@ -210,9 +210,9 @@
return cached_results["fire"] ? REACTING : NO_REACTION
//fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again (and again, and again)
//fusion: a terrible idea that was fun but broken. Now reworked to be less broken and more interesting. Again (and again, and again). Again!
//Fusion Rework Counter: Please increment this if you make a major overhaul to this system again.
//5 reworks
//6 reworks
/datum/gas_reaction/fusion
exclude = FALSE
@@ -220,100 +220,79 @@
name = "Plasmic Fusion"
id = "fusion"
//Since fusion isn't really intended to happen in successive chains, the requirements are very high
/datum/gas_reaction/fusion/init_reqs()
min_requirements = list(
"TEMP" = FUSION_TEMPERATURE_THRESHOLD,
"ENER" = FUSION_ENERGY_THRESHOLD,
/datum/gas/tritium = FUSION_TRITIUM_MOLES_USED,
/datum/gas/plasma = FUSION_MOLE_THRESHOLD,
/datum/gas/tritium = FUSION_MOLE_THRESHOLD
)
/datum/gas/carbon_dioxide = FUSION_MOLE_THRESHOLD)
/datum/gas_reaction/fusion/react(datum/gas_mixture/air, datum/holder)
var/list/cached_gases = air.gases
var/temperature = air.temperature
if(!air.analyzer_results)
air.analyzer_results = new
var/list/cached_scan_results = air.analyzer_results
var/turf/open/location
if (istype(holder,/datum/pipeline)) //Find the tile the reaction is occuring on, or a random part of the network if it's a pipenet.
var/datum/pipeline/fusion_pipenet = holder
location = get_turf(pick(fusion_pipenet.members))
else
location = get_turf(holder)
if(!air.analyzer_results)
air.analyzer_results = new
var/list/cached_scan_results = air.analyzer_results
var/old_heat_capacity = air.heat_capacity()
var/reaction_energy = 0
var/mediation = FUSION_MEDIATION_FACTOR*(air.heat_capacity()-(cached_gases[/datum/gas/plasma]*GLOB.meta_gas_specific_heats[/datum/gas/plasma]))/(air.total_moles()-cached_gases[/datum/gas/plasma]) //This is the average specific heat of the mixture,not including plasma.
var/gases_fused = air.total_moles() - cached_gases[/datum/gas/plasma]
var/plasma_differential = (cached_gases[/datum/gas/plasma] - gases_fused) / air.total_moles()
var/reaction_efficiency = FUSION_EFFICIENCY_BASE ** -((plasma_differential ** 2) / FUSION_EFFICIENCY_DIVISOR) //https://www.desmos.com/calculator/6jjx3vdrvx
var/reaction_energy = 0 //Reaction energy can be negative or positive, for both exothermic and endothermic reactions.
var/initial_plasma = cached_gases[/datum/gas/plasma]
var/initial_carbon = cached_gases[/datum/gas/carbon_dioxide]
var/scale_factor = (air.volume)/(PI) //We scale it down by volume/Pi because for fusion conditions, moles roughly = 2*volume, but we want it to be based off something constant between reactions.
var/toroidal_size = (2*PI)+TORADIANS(arctan((air.volume-TOROID_VOLUME_BREAKEVEN)/TOROID_VOLUME_BREAKEVEN)) //The size of the phase space hypertorus
var/gas_power = 0
var/list/gas_fusion_powers = GLOB.meta_gas_fusions
for (var/gas_id in cached_gases)
gas_power += reaction_efficiency * (GLOB.meta_gas_fusions[gas_id]*cached_gases[gas_id])
gas_power += (gas_fusion_powers[gas_id]*cached_gases[gas_id])
var/instability = MODULUS((gas_power*INSTABILITY_GAS_POWER_FACTOR)**2,toroidal_size) //Instability effects how chaotic the behavior of the reaction is
cached_scan_results[id] = instability//used for analyzer feedback
var/power_ratio = gas_power/mediation
cached_scan_results[id] = power_ratio //used for analyzer feedback
var/plasma = (initial_plasma-FUSION_MOLE_THRESHOLD)/(scale_factor) //We have to scale the amounts of carbon and plasma down a significant amount in order to show the chaotic dynamics we want
var/carbon = (initial_carbon-FUSION_MOLE_THRESHOLD)/(scale_factor) //We also subtract out the threshold amount to make it harder for fusion to burn itself out.
for (var/gas_id in cached_gases) //and now we fuse
cached_gases[gas_id] = 0
//The reaction is a specific form of the Kicked Rotator system, which displays chaotic behavior and can be used to model particle interactions.
plasma = MODULUS(plasma - (instability*sin(TODEGREES(carbon))), toroidal_size)
carbon = MODULUS(carbon - plasma, toroidal_size)
var/radiation_power = (FUSION_RADIATION_FACTOR * power_ratio) / (power_ratio + FUSION_RADIATION_CONSTANT) //https://www.desmos.com/calculator/4i1f296phl
var/zap_power = ((FUSION_ZAP_POWER_ASYMPTOTE * power_ratio) / (power_ratio + FUSION_ZAP_POWER_CONSTANT)) + FUSION_ZAP_POWER_BASE //https://www.desmos.com/calculator/n0zkdpxnrr
var/do_explosion = FALSE
var/zap_range //these ones are set later
var/fusion_prepare_to_die_edition_rng
if (power_ratio > FUSION_SUPER_TIER_THRESHOLD) //power ratio 50+: SUPER TIER. The gases become so energized that they fuse into a ton of tritium, which is pretty nice! Until you consider the fact that everything just exploded, the canister is probably going to break and you're irradiated.
reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_SUPER * (power_ratio / FUSION_ENERGY_DIVISOR_SUPER)
cached_gases[/datum/gas/tritium] += gases_fused * FUSION_GAS_CREATION_FACTOR_TRITIUM //60% of the gas is converted to energy, 40% to trit
fusion_prepare_to_die_edition_rng = 100 //Wait a minute..
do_explosion = TRUE
zap_range = FUSION_ZAP_RANGE_SUPER
cached_gases[/datum/gas/plasma] = plasma*scale_factor + FUSION_MOLE_THRESHOLD //Scales the gases back up
cached_gases[/datum/gas/carbon_dioxide] = carbon*scale_factor + FUSION_MOLE_THRESHOLD
var/delta_plasma = initial_plasma - cached_gases[/datum/gas/plasma]
else if (power_ratio > FUSION_HIGH_TIER_THRESHOLD) //power ratio 20-50; High tier. The reaction is so energized that it fuses into a small amount of stimulum, and some pluoxium. Very dangerous, but super cool and super useful.
reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_HIGH * (power_ratio / FUSION_ENERGY_DIVISOR_HIGH)
cached_gases[/datum/gas/stimulum] += gases_fused * FUSION_GAS_CREATION_FACTOR_STIM //40% of the gas is converted to energy, 60% to stim and pluox
cached_gases[/datum/gas/pluoxium] += gases_fused * FUSION_GAS_CREATION_FACTOR_PLUOX
fusion_prepare_to_die_edition_rng = power_ratio //Now we're getting into dangerous territory
do_explosion = TRUE
zap_range = FUSION_ZAP_RANGE_HIGH
else if (power_ratio > FUSION_MID_TIER_THRESHOLD) //power_ratio 5 to 20; Mediation is overpowered, fusion reaction starts to break down.
reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_MID * (power_ratio / FUSION_ENERGY_DIVISOR_MID)
cached_gases[/datum/gas/nitryl] += gases_fused * FUSION_GAS_CREATION_FACTOR_NITRYL //20% of the gas is converted to energy, 80% to nitryl and N2O
cached_gases[/datum/gas/nitrous_oxide] += gases_fused * FUSION_GAS_CREATION_FACTOR_N2O
fusion_prepare_to_die_edition_rng = power_ratio * FUSION_MID_TIER_RAD_PROB_FACTOR //Still unlikely, but don't stand next to the reaction unprotected
zap_range = FUSION_ZAP_RANGE_MID
else //power ratio 0 to 5; Gas power is overpowered. Fusion isn't nearly as powerful.
reaction_energy += gases_fused * FUSION_RELEASE_ENERGY_LOW * (power_ratio / FUSION_ENERGY_DIVISOR_LOW)
cached_gases[/datum/gas/bz] += gases_fused * FUSION_GAS_CREATION_FACTOR_BZ //10% of the gas is converted to energy, 90% to BZ and CO2
cached_gases[/datum/gas/carbon_dioxide] += gases_fused * FUSION_GAS_CREATION_FACTOR_CO2
fusion_prepare_to_die_edition_rng = power_ratio * FUSION_LOW_TIER_RAD_PROB_FACTOR //Low, but still something to look out for
zap_range = FUSION_ZAP_RANGE_LOW
//All the deadly consequences of fusion, consolidated for your viewing pleasure
if (location)
if(prob(fusion_prepare_to_die_edition_rng)) //Some.. permanent effects
if(do_explosion)
explosion(location, 0, 0, 5, power_ratio, TRUE, TRUE) //large shockwave, the actual radius is quite small - people will recognize that you're doing fusion
radiation_pulse(location, radiation_power) //You mean causing a super-tier fusion reaction in the halls is a bad idea?
SSresearch.science_tech.add_point_type(TECHWEB_POINT_TYPE_DEFAULT, 30000)//The science is cool though.
playsound(location, 'sound/effects/supermatter.ogg', 100, 0)
else
playsound(location, 'sound/effects/phasein.ogg', 75, 0)
//These will always happen, so be prepared
tesla_zap(location, zap_range, zap_power, TESLA_FUSION_FLAGS) //larpers beware
location.fire_nuclear_particles(power_ratio) //see code/modules/projectile/energy/nuclear_particle.dm
reaction_energy += delta_plasma*PLASMA_BINDING_ENERGY //Energy is gained or lost corresponding to the creation or destruction of mass.
if(instability < FUSION_INSTABILITY_ENDOTHERMALITY)
reaction_energy = max(reaction_energy,0) //Stable reactions don't end up endothermic.
else if (reaction_energy < 0)
reaction_energy *= (instability-FUSION_INSTABILITY_ENDOTHERMALITY)**0.5
if(air.thermal_energy() + reaction_energy < 0) //No using energy that doesn't exist.
cached_gases[/datum/gas/plasma] = initial_plasma
cached_gases[/datum/gas/carbon_dioxide] = initial_carbon
return NO_REACTION
cached_gases[/datum/gas/tritium] -= FUSION_TRITIUM_MOLES_USED
//The decay of the tritium and the reaction's energy produces waste gases, different ones depending on whether the reaction is endo or exothermic
if(reaction_energy > 0)
cached_gases[/datum/gas/oxygen] += FUSION_TRITIUM_MOLES_USED*(reaction_energy*FUSION_TRITIUM_CONVERSION_COEFFICIENT)
cached_gases[/datum/gas/nitrous_oxide] += FUSION_TRITIUM_MOLES_USED*(reaction_energy*FUSION_TRITIUM_CONVERSION_COEFFICIENT)
else
cached_gases[/datum/gas/bz] += FUSION_TRITIUM_MOLES_USED*(reaction_energy*-FUSION_TRITIUM_CONVERSION_COEFFICIENT)
cached_gases[/datum/gas/nitryl] += FUSION_TRITIUM_MOLES_USED*(reaction_energy*-FUSION_TRITIUM_CONVERSION_COEFFICIENT)
if(reaction_energy)
if(location)
var/particle_chance = ((PARTICLE_CHANCE_CONSTANT)/(reaction_energy-PARTICLE_CHANCE_CONSTANT)) + 1//Asymptopically approaches 100% as the energy of the reaction goes up.
if(prob(PERCENT(particle_chance)))
location.fire_nuclear_particle()
var/rad_power = max((FUSION_RAD_COEFFICIENT/instability) + FUSION_RAD_MAX,0)
radiation_pulse(location,rad_power)
var/new_heat_capacity = air.heat_capacity()
if(new_heat_capacity > MINIMUM_HEAT_CAPACITY)
air.temperature = max(((temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB)
air.temperature = CLAMP(((air.temperature*old_heat_capacity + reaction_energy)/new_heat_capacity),TCMB,INFINITY)
return REACTING
/datum/gas_reaction/nitrylformation //The formation of nitryl. Endothermic. Requires N2O as a catalyst.
+19 -3
View File
@@ -86,6 +86,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
var/skin_tone = "caucasian1" //Skin color
var/eye_color = "000" //Eye color
var/horn_color = "85615a" //Horn color
var/wing_color = "fff" //Wing color
var/datum/species/pref_species = new /datum/species/human() //Mutant race
var/list/features = list("mcolor" = "FFF",
"tail_lizard" = "Smooth",
@@ -591,6 +592,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<h3>Decorative wings</h3>"
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=deco_wings;task=input'>[features["deco_wings"]]</a>"
dat += "<span style='border:1px solid #161616; background-color: #[wing_color];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=wings_color;task=input'>Change</a><BR>"
if("insect_wings" in pref_species.default_features)
if(!mutant_category)
dat += APPEARANCE_CATEGORY_COLUMN
@@ -598,6 +601,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "<h3>Insect wings</h3>"
dat += "<a style='display:block;width:100px' href='?_src_=prefs;preference=insect_wings;task=input'>[features["insect_wings"]]</a>"
dat += "<span style='border:1px solid #161616; background-color: #[wing_color];'>&nbsp;&nbsp;&nbsp;</span> <a href='?_src_=prefs;preference=wings_color;task=input'>Change</a><BR>"
mutant_category++
if(mutant_category >= MAX_MUTANT_ROWS)
dat += "</td>"
@@ -1689,7 +1693,10 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if("horns_color")
var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+horn_color) as color|null
if(new_horn_color)
horn_color = sanitize_hexcolor(new_horn_color)
if (new_horn_color == "#000000")
horn_color = "#85615A"
else
horn_color = sanitize_hexcolor(new_horn_color)
if("wings")
var/new_wings
@@ -1697,6 +1704,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
if(new_wings)
features["wings"] = new_wings
if("wings_color")
var/new_wing_color = input(user, "Choose your character's wing colour:", "Character Preference","#"+wing_color) as color|null
if(new_wing_color)
if (new_wing_color == "#000000")
wing_color = "#FFFFFF"
else
wing_color = sanitize_hexcolor(new_wing_color)
if("frills")
var/new_frills
new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in GLOB.frills_list
@@ -1730,13 +1745,13 @@ GLOBAL_LIST_EMPTY(preferences_datums)
new_insect_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.insect_wings_list
if(new_insect_wings)
features["insect_wings"] = new_insect_wings
if("deco_wings")
var/new_deco_wings
new_deco_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.deco_wings_list
if(new_deco_wings)
features["deco_wings"] = new_deco_wings
if("insect_fluffs")
var/new_insect_fluff
new_insect_fluff = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.insect_fluffs_list
@@ -2262,6 +2277,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
character.hair_color = hair_color
character.facial_hair_color = facial_hair_color
character.horn_color = horn_color
character.wing_color = wing_color
character.skin_tone = skin_tone
character.hair_style = hair_style
+16 -1
View File
@@ -317,6 +317,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
WRITE_FILE(S["features["mcolor"]"] , "#FFF")
if(!S["features["horn_color"]"] || S["features["horn_color"]"] == "#000")
WRITE_FILE(S["features["horn_color"]"] , "#85615a")
if(!S["features["wing_color"]"] || S["features["wing_color"]"] == "#000")
WRITE_FILE(S["features["wing_color"]"] , "#FFF")
//Character
S["real_name"] >> real_name
S["nameless"] >> nameless
@@ -338,6 +344,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
S["socks"] >> socks
S["socks_color"] >> socks_color
S["horn_color"] >> horn_color
S["wing_color"] >> wing_color
S["backbag"] >> backbag
S["jumpsuit_style"] >> jumpsuit_style
S["uplink_loc"] >> uplink_spawn_loc
@@ -449,6 +456,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
if(!features["mcolor"] || features["mcolor"] == "#000")
features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
if(!features["horn_color"] || features["horn_color"] == "#000")
features["horn_color"] = "85615a"
if(!features["wing_color"] || features["wing_color"] == "#000")
features["wing_color"] = "FFFFFF"
nameless = sanitize_integer(nameless, 0, 1, initial(nameless))
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
@@ -471,6 +484,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
eye_color = sanitize_hexcolor(eye_color, 3, 0)
skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones)
horn_color = sanitize_hexcolor(horn_color, 3, FALSE)
wing_color = sanitize_hexcolor(wing_color, 3, FALSE, "#FFFFFF")
backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag))
jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style))
uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc))
@@ -485,7 +499,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list)
features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list)
features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list)
features["deco_wings"] = sanitize_inlist(features["deco_wings"], GLOB.deco_wings_list)
features["deco_wings"] = sanitize_inlist(features["deco_wings"], GLOB.deco_wings_list, "None")
features["insect_fluff"] = sanitize_inlist(features["insect_fluff"], GLOB.insect_fluffs_list)
joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole))
@@ -540,6 +554,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
WRITE_FILE(S["socks"] , socks)
WRITE_FILE(S["socks_color"] , socks_color)
WRITE_FILE(S["horn_color"] , horn_color)
WRITE_FILE(S["wing_color"] , wing_color)
WRITE_FILE(S["backbag"] , backbag)
WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style)
WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc)
+1 -1
View File
@@ -55,7 +55,7 @@
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]")
IF_HAS_BLOOD_DNA(src)
if(taurmode >= SNEK_TAURIC)
if(tauric)
. += mutable_appearance('modular_citadel/icons/mob/64x32_effects.dmi', "[blood_overlay_type]blood")
else
. += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood")
+1 -954
View File
@@ -1,4 +1,3 @@
/datum/crafting_recipe
var/name = "" //in-game display name
var/reqs[] = list() //type paths of items consumed associated with how many are needed
@@ -9,956 +8,4 @@
var/chem_catalysts[] = list() //like tools but for reagents
var/category = CAT_NONE //where it shows up in the crafting UI
var/subcategory = CAT_NONE
var/always_availible = TRUE //Set to FALSE if it needs to be learned first.
/datum/crafting_recipe/pin_removal
name = "Pin Removal"
result = /obj/item/gun
reqs = list(/obj/item/gun = 1)
parts = list(/obj/item/gun = 1)
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/IED
name = "IED"
result = /obj/item/grenade/iedcasing
reqs = list(/datum/reagent/fuel = 50,
/obj/item/stack/cable_coil = 1,
/obj/item/assembly/igniter = 1,
/obj/item/reagent_containers/food/drinks/soda_cans = 1)
parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1)
time = 15
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/lance
name = "Explosive Lance (Grenade)"
result = /obj/item/twohanded/spear
reqs = list(/obj/item/twohanded/spear = 1,
/obj/item/grenade = 1)
parts = list(/obj/item/twohanded/spear = 1,
/obj/item/grenade = 1)
time = 15
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/strobeshield
name = "Strobe Shield"
result = /obj/item/assembly/flash/shield
reqs = list(/obj/item/wallframe/flasher = 1,
/obj/item/assembly/flash/handheld = 1,
/obj/item/shield/riot = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/makeshiftshield
name = "Makeshift Metal Shield"
result = /obj/item/shield/makeshift
reqs = list(/obj/item/stack/cable_coil = 30,
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/leather = 3)
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
time = 100
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/molotov
name = "Molotov"
result = /obj/item/reagent_containers/food/drinks/bottle/molotov
reqs = list(/obj/item/reagent_containers/rag = 1,
/obj/item/reagent_containers/food/drinks/bottle = 1)
parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/stunprod
name = "Stunprod"
result = /obj/item/melee/baton/cattleprod
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/rods = 1,
/obj/item/assembly/igniter = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/teleprod
name = "Teleprod"
result = /obj/item/melee/baton/cattleprod/teleprod
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/rods = 1,
/obj/item/assembly/igniter = 1,
/obj/item/stack/ore/bluespace_crystal = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/bola
name = "Bola"
result = /obj/item/restraints/legcuffs/bola
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/sheet/metal = 6)
time = 20//15 faster than crafting them by hand!
category= CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/tailclub
name = "Tail Club"
result = /obj/item/tailclub
reqs = list(/obj/item/organ/tail/lizard = 1,
/obj/item/stack/sheet/metal = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/tailwhip
name = "Liz O' Nine Tails"
result = /obj/item/melee/chainofcommand/tailwhip
reqs = list(/obj/item/organ/tail/lizard = 1,
/obj/item/stack/cable_coil = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/catwhip
name = "Cat O' Nine Tails"
result = /obj/item/melee/chainofcommand/tailwhip/kitty
reqs = list(/obj/item/organ/tail/cat = 1,
/obj/item/stack/cable_coil = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/minigun
name = "Laser Minigun"
result = /obj/item/minigunpack2
reqs = list(/obj/item/gun/energy/laser/carbine = 3,
/obj/item/stack/sheet/plasteel = 5,
/obj/item/stack/cable_coil = 30,
/obj/item/stock_parts/cell/bluespace = 2)
tools = list(TOOL_WIRECUTTER, TOOL_SCREWDRIVER, TOOL_WELDER)
time = 150
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/ed209
name = "ED209"
result = /mob/living/simple_animal/bot/ed209
reqs = list(/obj/item/robot_suit = 1,
/obj/item/clothing/head/helmet = 1,
/obj/item/clothing/suit/armor/vest = 1,
/obj/item/bodypart/l_leg/robot = 1,
/obj/item/bodypart/r_leg/robot = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/gun/energy/e_gun/advtaser = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/assembly/prox_sensor = 1)
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER)
time = 60
category = CAT_ROBOT
/datum/crafting_recipe/secbot
name = "Secbot"
result = /mob/living/simple_animal/bot/secbot
reqs = list(/obj/item/assembly/signaler = 1,
/obj/item/clothing/head/helmet/sec = 1,
/obj/item/melee/baton = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
tools = list(TOOL_WELDER)
time = 60
category = CAT_ROBOT
/datum/crafting_recipe/cleanbot
name = "Cleanbot"
result = /mob/living/simple_animal/bot/cleanbot
reqs = list(/obj/item/reagent_containers/glass/bucket = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/floorbot
name = "Floorbot"
result = /mob/living/simple_animal/bot/floorbot
reqs = list(/obj/item/storage/toolbox/mechanical = 1,
/obj/item/stack/tile/plasteel = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/medbot
name = "Medbot"
result = /mob/living/simple_animal/bot/medbot
reqs = list(/obj/item/healthanalyzer = 1,
/obj/item/storage/firstaid = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/honkbot
name = "Honkbot"
result = /mob/living/simple_animal/bot/honkbot
reqs = list(/obj/item/storage/box/clown = 1,
/obj/item/bodypart/r_arm/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bikehorn/ = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/Firebot
name = "Firebot"
result = /mob/living/simple_animal/bot/firebot
reqs = list(/obj/item/extinguisher = 1,
/obj/item/bodypart/r_arm/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/clothing/head/hardhat/red = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/potatos
name = "Potat-OS"
reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/aicard = 1 )
result = /obj/item/aicard/potato
category = CAT_ROBOT
/datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but
name = "Pneumatic Cannon"
result = /obj/item/pneumatic_cannon/ghetto
tools = list(TOOL_WELDER, TOOL_WRENCH)
reqs = list(/obj/item/stack/sheet/metal = 4,
/obj/item/stack/packageWrap = 8,
/obj/item/pipe = 2)
time = 300
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/flamethrower
name = "Flamethrower"
result = /obj/item/flamethrower
reqs = list(/obj/item/weldingtool = 1,
/obj/item/assembly/igniter = 1,
/obj/item/stack/rods = 1)
parts = list(/obj/item/assembly/igniter = 1,
/obj/item/weldingtool = 1)
tools = list(TOOL_SCREWDRIVER)
time = 10
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/meteorslug
name = "Meteorslug Shell"
result = /obj/item/ammo_casing/shotgun/meteorslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/rcd_ammo = 1,
/obj/item/stock_parts/manipulator = 2)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/pulseslug
name = "Pulse Slug Shell"
result = /obj/item/ammo_casing/shotgun/pulseslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/stock_parts/capacitor/adv = 2,
/obj/item/stock_parts/micro_laser/ultra = 1)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/dragonsbreath
name = "Dragonsbreath Shell"
result = /obj/item/ammo_casing/shotgun/dragonsbreath
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1, /datum/reagent/phosphorus = 5)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/frag12
name = "FRAG-12 Shell"
result = /obj/item/ammo_casing/shotgun/frag12
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/datum/reagent/glycerol = 5,
/datum/reagent/toxin/acid = 5,
/datum/reagent/toxin/acid/fluacid = 5)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/ionslug
name = "Ion Scatter Shell"
result = /obj/item/ammo_casing/shotgun/ion
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/stock_parts/micro_laser/ultra = 1,
/obj/item/stock_parts/subspace/crystal = 1)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/improvisedslug
name = "Improvised Shotgun Shell"
result = /obj/item/ammo_casing/shotgun/improvised
reqs = list(/obj/item/grenade/chem_grenade = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/datum/reagent/fuel = 10)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/laserslug
name = "Scatter Laser Shell"
result = /obj/item/ammo_casing/shotgun/laserslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/stock_parts/capacitor/adv = 1,
/obj/item/stock_parts/micro_laser/high = 1)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised
reqs = list(/obj/item/weaponcrafting/receiver = 1,
/obj/item/pipe = 1,
/obj/item/weaponcrafting/stock = 1,
/obj/item/stack/packageWrap = 5)
tools = list(TOOL_SCREWDRIVER)
time = 100
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/irifle
name = "Improvised Rifle(7.62mm)"
result = /obj/item/gun/ballistic/shotgun/boltaction/improvised
reqs = list(/obj/item/weaponcrafting/receiver = 1,
/obj/item/pipe = 2,
/obj/item/weaponcrafting/stock = 1,
/obj/item/stack/packageWrap = 5)
tools = list(TOOL_SCREWDRIVER)
time = 100
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/chainsaw
name = "Chainsaw"
result = /obj/item/twohanded/required/chainsaw
reqs = list(/obj/item/circular_saw = 1,
/obj/item/stack/cable_coil = 3,
/obj/item/stack/sheet/plasteel = 5)
tools = list(TOOL_WELDER)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/spear
name = "Spear"
result = /obj/item/twohanded/spear
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/shard = 1,
/obj/item/stack/rods = 1)
parts = list(/obj/item/shard = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/spooky_camera
name = "Camera Obscura"
result = /obj/item/camera/spooky
time = 15
reqs = list(/obj/item/camera = 1,
/datum/reagent/water/holywater = 10)
parts = list(/obj/item/camera = 1)
category = CAT_MISC
/datum/crafting_recipe/skateboard
name = "Skateboard"
result = /obj/vehicle/ridden/scooter/skateboard
time = 60
reqs = list(/obj/item/stack/sheet/metal = 5,
/obj/item/stack/rods = 10)
category = CAT_MISC
/datum/crafting_recipe/scooter
name = "Scooter"
result = /obj/vehicle/ridden/scooter
time = 65
reqs = list(/obj/item/stack/sheet/metal = 5,
/obj/item/stack/rods = 12)
category = CAT_MISC
/datum/crafting_recipe/mousetrap
name = "Mouse Trap"
result = /obj/item/assembly/mousetrap
time = 10
reqs = list(/obj/item/stack/sheet/cardboard = 1,
/obj/item/stack/rods = 1)
category = CAT_MISC
/datum/crafting_recipe/papersack
name = "Paper Sack"
result = /obj/item/storage/box/papersack
time = 10
reqs = list(/obj/item/paper = 5)
category = CAT_MISC
/datum/crafting_recipe/flashlight_eyes
name = "Flashlight Eyes"
result = /obj/item/organ/eyes/robotic/flashlight
time = 10
reqs = list(
/obj/item/flashlight = 2,
/obj/item/restraints/handcuffs/cable = 1
)
category = CAT_MISC
/datum/crafting_recipe/paperframes
name = "Paper Frames"
result = /obj/item/stack/sheet/paperframes/five
time = 10
reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/paper = 20)
category = CAT_MISC
/datum/crafting_recipe/naturalpaper
name = "Hand-Pressed Paper"
time = 30
reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1)
tools = list(/obj/item/hatchet)
result = /obj/item/paper_bin/bundlenatural
category = CAT_MISC
/datum/crafting_recipe/toysword
name = "Toy Sword"
reqs = list(/obj/item/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4)
result = /obj/item/toy/sword
category = CAT_MISC
/datum/crafting_recipe/blackcarpet
name = "Black Carpet"
reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1)
result = /obj/item/stack/tile/carpet/black/fifty
category = CAT_MISC
/datum/crafting_recipe/showercurtain
name = "Shower Curtains"
reqs = list(/obj/item/stack/sheet/cloth = 2, /obj/item/stack/sheet/plastic = 2, /obj/item/stack/rods = 1)
result = /obj/structure/curtain
category = CAT_MISC
/datum/crafting_recipe/extendohand
name = "Extendo-Hand"
reqs = list(/obj/item/bodypart/r_arm/robot = 1, /obj/item/clothing/gloves/boxing = 1)
result = /obj/item/extendohand
category = CAT_MISC
/datum/crafting_recipe/bluespacehonker
name = "Bluespace Bike horn"
result = /obj/item/bikehorn/bluespacehonker
time = 10
reqs = list(/obj/item/stack/ore/bluespace_crystal = 1,
/obj/item/toy/crayon/blue = 1,
/obj/item/bikehorn = 1)
category = CAT_MISC
/datum/crafting_recipe/toyneb
name = "Non-Euplastic Blade"
reqs = list(/obj/item/light/tube = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4)
result = /obj/item/toy/sword/cx
category = CAT_MISC
/datum/crafting_recipe/chemical_payload
name = "Chemical Payload (C4)"
result = /obj/item/bombcore/chemical
reqs = list(
/obj/item/stock_parts/matter_bin = 1,
/obj/item/grenade/plastic/c4 = 1,
/obj/item/grenade/chem_grenade = 2
)
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 30
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/chemical_payload2
name = "Chemical Payload (Gibtonite)"
result = /obj/item/bombcore/chemical
reqs = list(
/obj/item/stock_parts/matter_bin = 1,
/obj/item/twohanded/required/gibtonite = 1,
/obj/item/grenade/chem_grenade = 2
)
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/bonearmor
name = "Bone Armor"
result = /obj/item/clothing/suit/armor/bone
time = 30
reqs = list(/obj/item/stack/sheet/bone = 6)
category = CAT_PRIMAL
/datum/crafting_recipe/bonetalisman
name = "Bone Talisman"
result = /obj/item/clothing/accessory/talisman
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonecodpiece
name = "Skull Codpiece"
result = /obj/item/clothing/accessory/skullcodpiece
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bracers
name = "Bone Bracers"
result = /obj/item/clothing/gloves/bracer
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/skullhelm
name = "Skull Helmet"
result = /obj/item/clothing/head/helmet/skull
time = 30
reqs = list(/obj/item/stack/sheet/bone = 4)
category = CAT_PRIMAL
/datum/crafting_recipe/goliathcloak
name = "Goliath Cloak"
result = /obj/item/clothing/suit/hooded/cloak/goliath
time = 50
reqs = list(/obj/item/stack/sheet/leather = 2,
/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned
category = CAT_PRIMAL
/datum/crafting_recipe/drakecloak
name = "Ash Drake Armour"
result = /obj/item/clothing/suit/hooded/cloak/drake
time = 60
reqs = list(/obj/item/stack/sheet/bone = 10,
/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/ashdrake = 5)
category = CAT_PRIMAL
/datum/crafting_recipe/bonebag
name = "Bone Satchel"
result = /obj/item/storage/backpack/satchel/bone
time = 30
reqs = list(/obj/item/stack/sheet/bone = 3,
/obj/item/stack/sheet/sinew = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/gold_horn
name = "Golden Bike Horn"
result = /obj/item/bikehorn/golden
time = 20
reqs = list(/obj/item/stack/sheet/mineral/bananium = 5,
/obj/item/bikehorn = 1)
category = CAT_MISC
/datum/crafting_recipe/bonedagger
name = "Bone Dagger"
result = /obj/item/kitchen/knife/combat/bone
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/bonespear
name = "Bone Spear"
result = /obj/item/twohanded/bonespear
time = 30
reqs = list(/obj/item/stack/sheet/bone = 4,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/boneaxe
name = "Bone Axe"
result = /obj/item/twohanded/fireaxe/boneaxe
time = 50
reqs = list(/obj/item/stack/sheet/bone = 6,
/obj/item/stack/sheet/sinew = 3)
category = CAT_PRIMAL
/datum/crafting_recipe/bonfire
name = "Bonfire"
time = 60
reqs = list(/obj/item/grown/log = 5)
result = /obj/structure/bonfire
category = CAT_PRIMAL
/datum/crafting_recipe/headpike
name = "Spike Head (Glass Spear)"
time = 65
reqs = list(/obj/item/twohanded/spear = 1,
/obj/item/bodypart/head = 1)
parts = list(/obj/item/bodypart/head = 1,
/obj/item/twohanded/spear = 1)
result = /obj/structure/headpike
category = CAT_PRIMAL
/datum/crafting_recipe/headpikebone
name = "Spike Head (Bone Spear)"
time = 65
reqs = list(/obj/item/twohanded/bonespear = 1,
/obj/item/bodypart/head = 1)
parts = list(/obj/item/bodypart/head = 1,
/obj/item/twohanded/bonespear = 1)
result = /obj/structure/headpike/bone
category = CAT_PRIMAL
/datum/crafting_recipe/smallcarton
name = "Small Carton"
result = /obj/item/reagent_containers/food/drinks/sillycup/smallcarton
time = 10
reqs = list(/obj/item/stack/sheet/cardboard = 1)
category = CAT_MISC
/datum/crafting_recipe/pressureplate
name = "Pressure Plate"
result = /obj/item/pressure_plate
time = 5
reqs = list(/obj/item/stack/sheet/metal = 1,
/obj/item/stack/tile/plasteel = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/assembly/igniter = 1)
category = CAT_MISC
/datum/crafting_recipe/wheelchair
name = "Wheelchair"
result = /obj/vehicle/ridden/wheelchair
reqs = list(/obj/item/stack/sheet/plasteel = 2,
/obj/item/stack/rods = 8)
time = 100
category = CAT_MISC
/datum/crafting_recipe/rcl
name = "Makeshift Rapid Cable Layer"
result = /obj/item/twohanded/rcl/ghetto
time = 40
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH)
reqs = list(/obj/item/stack/sheet/metal = 15)
category = CAT_MISC
/datum/crafting_recipe/mummy
name = "Mummification Bandages (Mask)"
result = /obj/item/clothing/mask/mummy
time = 10
tools = list(/obj/item/nullrod/egyptian)
reqs = list(/obj/item/stack/sheet/cloth = 2)
category = CAT_CLOTHING
/datum/crafting_recipe/mummy/body
name = "Mummification Bandages (Body)"
result = /obj/item/clothing/under/mummy
reqs = list(/obj/item/stack/sheet/cloth = 5)
/datum/crafting_recipe/guillotine
name = "Guillotine"
result = /obj/structure/guillotine
time = 150 // Building a functioning guillotine takes time
reqs = list(/obj/item/stack/sheet/plasteel = 3,
/obj/item/stack/sheet/mineral/wood = 20,
/obj/item/stack/cable_coil = 10)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
category = CAT_MISC
/datum/crafting_recipe/femur_breaker
name = "Femur Breaker"
result = /obj/structure/femur_breaker
time = 150
reqs = list(/obj/item/stack/sheet/metal = 20,
/obj/item/stack/cable_coil = 30)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
category = CAT_MISC
/datum/crafting_recipe/lizardhat
name = "Lizard Cloche Hat"
result = /obj/item/clothing/head/lizard
time = 10
reqs = list(/obj/item/organ/tail/lizard = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/lizardhat_alternate
name = "Lizard Cloche Hat"
result = /obj/item/clothing/head/lizard
time = 10
reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/kittyears
name = "Kitty Ears"
result = /obj/item/clothing/head/kitty/genuine
time = 10
reqs = list(/obj/item/organ/tail/cat = 1,
/obj/item/organ/ears/cat = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunsec
name = "Security HUDsunglasses"
result = /obj/item/clothing/glasses/hud/security/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/security = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunsecremoval
name = "Security HUD removal"
result = /obj/item/clothing/glasses/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunmed
name = "Medical HUDsunglasses"
result = /obj/item/clothing/glasses/hud/health/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/health = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunmedremoval
name = "Medical HUD removal"
result = /obj/item/clothing/glasses/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/beergoggles
name = "Beer Goggles"
result = /obj/item/clothing/glasses/sunglasses/reagent
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/science = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/beergogglesremoval
name = "Beer Goggles removal"
result = /obj/item/clothing/glasses/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/ghostsheet
name = "Ghost Sheet"
result = /obj/item/clothing/suit/ghost_sheet
time = 5
tools = list(TOOL_WIRECUTTER)
reqs = list(/obj/item/bedsheet = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/briefcase
name = "Hand made Briefcase"
result = /obj/item/storage/briefcase/crafted
time = 35
tools = list(TOOL_WIRECUTTER)
reqs = list(/obj/item/stack/sheet/cardboard = 1,
/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/leather = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/aitater
name = "intelliTater"
result = /obj/item/aicard/aitater
time = 30
reqs = list(/obj/item/aicard = 1,
/obj/item/reagent_containers/food/snacks/grown/potato = 1)
category = CAT_MISC
/datum/crafting_recipe/paperwork
name = "Filed Paper Work"
result = /obj/item/folder/paperwork_correct
time = 60 //Takes time for people to file and complete paper work!
reqs = list(/obj/item/pen = 1,
/obj/item/folder/paperwork = 2)
category = CAT_MISC
/datum/crafting_recipe/ghettojetpack
name = "Improvised Jetpack"
result = /obj/item/tank/jetpack/improvised
time = 30
reqs = list(/obj/item/tank/internals/oxygen = 2,
/obj/item/extinguisher = 1,
/obj/item/pipe = 3,
/obj/item/stack/cable_coil = 30)
category = CAT_MISC
tools = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER)
/datum/crafting_recipe/goldenbox
name = "Gold Plated Toolbox"
result = /obj/item/storage/toolbox/gold_fake
reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting
/obj/item/stack/cable_coil = 10,
/obj/item/stack/sheet/mineral/gold = 1,
/obj/item/stock_parts/cell = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_driver
name = "Bronze Plated Screwdriver"
result = /obj/item/screwdriver/bronze
reqs = list(/obj/item/screwdriver = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_welder
name = "Bronze Plated Welding Tool"
result = /obj/item/weldingtool/bronze
reqs = list(/obj/item/weldingtool = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_wirecutters
name = "Bronze Plated Wirecutters"
result = /obj/item/wirecutters/bronze
reqs = list(/obj/item/wirecutters = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_crowbar
name = "Bronze Plated Crowbar"
result = /obj/item/crowbar/bronze
reqs = list(/obj/item/crowbar = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_wrench
name = "Bronze Plated Wrench"
result = /obj/item/wrench/bronze
reqs = list(/obj/item/wrench = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/smartdart
name = "Medical smartdart"
result = /obj/item/reagent_containers/syringe/dart
reqs = list(/obj/item/stack/sheet/metal = 1,
/obj/item/stack/sheet/glass = 1,
/obj/item/stack/sheet/plastic = 1)
time = 10
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/medolier
name = "Medolier"
result = /obj/item/storage/belt/medolier
reqs = list(/obj/item/stack/sheet/metal = 2,
/obj/item/stack/sheet/cloth = 3,
/obj/item/stack/sheet/plastic = 4)
time = 30
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/smartdartgun
name = "Smart dartgun"
result = /obj/item/gun/syringe/dart
reqs = list(/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/glass = 5,
/obj/item/tank/internals = 1,
/obj/item/reagent_containers/glass/beaker = 1,
/obj/item/stack/sheet/plastic = 5,
/obj/item/stack/cable_coil = 1)
time = 150 //It's a gun
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/rapiddartgun
name = "Rapid Smart dartgun"
result = /obj/item/gun/syringe/dart/rapiddart
reqs = list(
/obj/item/gun/syringe/dart = 1,
/obj/item/stack/sheet/plastic = 5,
/obj/item/stack/cable_coil = 1,
/obj/item/reagent_containers/glass/beaker = 1
)
parts = list(/obj/item/reagent_containers/glass/beaker = 1)
time = 120 //Modifying your gun
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/durathread_duffelbag
name = "Durathread Dufflebag"
result = /obj/item/storage/backpack/duffelbag/durathread
reqs = list(/obj/item/stack/sheet/durathread = 7,
/obj/item/stack/sheet/leather = 3)
time = 70
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_toolbelt
name = "Durathread Toolbelt"
result = /obj/item/storage/belt/durathread
reqs = list(/obj/item/stack/sheet/durathread = 5,
/obj/item/stack/sheet/leather = 1)
time = 30
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_bandolier
name = "Durathread Bandolier"
result = /obj/item/storage/belt/bandolier/durathread
reqs = list(/obj/item/stack/sheet/durathread = 6,
/obj/item/stack/sheet/leather = 2)
time = 50
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_helmet
name = "Makeshift Durathread Helmet"
result = /obj/item/clothing/head/helmet/durathread
reqs = list(/obj/item/stack/sheet/durathread = 4,
/obj/item/stack/sheet/leather = 2)
time = 30
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_vest
name = "Makeshift Durathread Armour"
result = /obj/item/clothing/suit/armor/vest/durathread
reqs = list(/obj/item/stack/sheet/durathread = 6,
/obj/item/stack/sheet/leather = 3)
time = 50
category = CAT_CLOTHING
var/always_availible = TRUE //Set to FALSE if it needs to be learned first.
@@ -0,0 +1,160 @@
/datum/crafting_recipe/mummy
name = "Mummification Bandages (Mask)"
result = /obj/item/clothing/mask/mummy
time = 10
tools = list(/obj/item/nullrod/egyptian)
reqs = list(/obj/item/stack/sheet/cloth = 2)
category = CAT_CLOTHING
/datum/crafting_recipe/mummy/body
name = "Mummification Bandages (Body)"
result = /obj/item/clothing/under/mummy
reqs = list(/obj/item/stack/sheet/cloth = 5)
/datum/crafting_recipe/lizardhat
name = "Lizard Cloche Hat"
result = /obj/item/clothing/head/lizard
time = 10
reqs = list(/obj/item/organ/tail/lizard = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/lizardhat_alternate
name = "Lizard Cloche Hat"
result = /obj/item/clothing/head/lizard
time = 10
reqs = list(/obj/item/stack/sheet/animalhide/lizard = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/kittyears
name = "Kitty Ears"
result = /obj/item/clothing/head/kitty/genuine
time = 10
reqs = list(/obj/item/organ/tail/cat = 1,
/obj/item/organ/ears/cat = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunsec
name = "Security HUDsunglasses"
result = /obj/item/clothing/glasses/hud/security/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/security = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunsecremoval
name = "Security HUD removal"
result = /obj/item/clothing/glasses/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/security/sunglasses = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunmed
name = "Medical HUDsunglasses"
result = /obj/item/clothing/glasses/hud/health/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/health = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/hudsunmedremoval
name = "Medical HUD removal"
result = /obj/item/clothing/glasses/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/hud/health/sunglasses = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/beergoggles
name = "Beer Goggles"
result = /obj/item/clothing/glasses/sunglasses/reagent
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/science = 1,
/obj/item/clothing/glasses/sunglasses = 1,
/obj/item/stack/cable_coil = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/beergogglesremoval
name = "Beer Goggles removal"
result = /obj/item/clothing/glasses/sunglasses
time = 20
tools = list(TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
reqs = list(/obj/item/clothing/glasses/sunglasses/reagent = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/ghostsheet
name = "Ghost Sheet"
result = /obj/item/clothing/suit/ghost_sheet
time = 5
tools = list(TOOL_WIRECUTTER)
reqs = list(/obj/item/bedsheet = 1)
category = CAT_CLOTHING
/datum/crafting_recipe/briefcase
name = "Hand made Briefcase"
result = /obj/item/storage/briefcase/crafted
time = 35
tools = list(TOOL_WIRECUTTER)
reqs = list(/obj/item/stack/sheet/cardboard = 1,
/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/leather = 5)
category = CAT_CLOTHING
/datum/crafting_recipe/medolier
name = "Medolier"
result = /obj/item/storage/belt/medolier
reqs = list(/obj/item/stack/sheet/metal = 2,
/obj/item/stack/sheet/cloth = 3,
/obj/item/stack/sheet/plastic = 4)
time = 30
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_duffelbag
name = "Durathread Dufflebag"
result = /obj/item/storage/backpack/duffelbag/durathread
reqs = list(/obj/item/stack/sheet/durathread = 7,
/obj/item/stack/sheet/leather = 3)
time = 70
always_availible = TRUE
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_toolbelt
name = "Durathread Toolbelt"
result = /obj/item/storage/belt/durathread
reqs = list(/obj/item/stack/sheet/durathread = 5,
/obj/item/stack/sheet/leather = 2)
time = 30
always_availible = TRUE
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_bandolier
name = "Durathread Bandolier"
result = /obj/item/storage/belt/bandolier/durathread
reqs = list(/obj/item/stack/sheet/durathread = 6,
/obj/item/stack/sheet/leather = 2)
time = 50
always_availible = TRUE
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_helmet
name = "Makeshift Durathread Helmet"
result = /obj/item/clothing/head/helmet/durathread
reqs = list(/obj/item/stack/sheet/durathread = 4,
/obj/item/stack/sheet/leather = 2)
time = 30
always_availible = TRUE
category = CAT_CLOTHING
/datum/crafting_recipe/durathread_vest
name = "Makeshift Durathread Armour"
result = /obj/item/clothing/suit/armor/vest/durathread
reqs = list(/obj/item/stack/sheet/durathread = 6,
/obj/item/stack/sheet/leather = 3)
time = 50
always_availible = TRUE
category = CAT_CLOTHING
@@ -0,0 +1,325 @@
/////////////////
//Large Objects//
/////////////////
/datum/crafting_recipe/showercurtain
name = "Shower Curtains"
reqs = list(/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/plastic = 2,
/obj/item/stack/rods = 1)
result = /obj/structure/curtain
category = CAT_MISC
/datum/crafting_recipe/guillotine
name = "Guillotine"
result = /obj/structure/guillotine
time = 150 // Building a functioning guillotine takes time
reqs = list(/obj/item/stack/sheet/plasteel = 3,
/obj/item/stack/sheet/mineral/wood = 20,
/obj/item/stack/cable_coil = 10)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
category = CAT_MISC
/datum/crafting_recipe/femur_breaker
name = "Femur Breaker"
result = /obj/structure/femur_breaker
time = 150
reqs = list(/obj/item/stack/sheet/metal = 20,
/obj/item/stack/cable_coil = 30)
tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER)
category = CAT_MISC
///////////////////
//Tools & Storage//
///////////////////
/datum/crafting_recipe/ghettojetpack
name = "Improvised Jetpack"
result = /obj/item/tank/jetpack/improvised
time = 30
reqs = list(/obj/item/tank/internals/oxygen = 2,
/obj/item/extinguisher = 1,
/obj/item/pipe = 3,
/obj/item/stack/cable_coil = 30)
category = CAT_MISC
tools = list(TOOL_WRENCH, TOOL_WELDER, TOOL_WIRECUTTER)
/datum/crafting_recipe/goldenbox
name = "Gold Plated Toolbox"
result = /obj/item/storage/toolbox/gold_fake
reqs = list(/obj/item/stack/sheet/cardboard = 1, //so we dont null items in crafting
/obj/item/stack/cable_coil = 10,
/obj/item/stack/sheet/mineral/gold = 1,
/obj/item/stock_parts/cell = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_driver
name = "Bronze Plated Screwdriver"
result = /obj/item/screwdriver/bronze
reqs = list(/obj/item/screwdriver = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_welder
name = "Bronze Plated Welding Tool"
result = /obj/item/weldingtool/bronze
reqs = list(/obj/item/weldingtool = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_wirecutters
name = "Bronze Plated Wirecutters"
result = /obj/item/wirecutters/bronze
reqs = list(/obj/item/wirecutters = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_crowbar
name = "Bronze Plated Crowbar"
result = /obj/item/crowbar/bronze
reqs = list(/obj/item/crowbar = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/bronze_wrench
name = "Bronze Plated Wrench"
result = /obj/item/wrench/bronze
reqs = list(/obj/item/wrench = 1,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/tile/bronze = 1,
/datum/reagent/water = 15)
time = 40
category = CAT_MISC
/datum/crafting_recipe/rcl
name = "Makeshift Rapid Cable Layer"
result = /obj/item/twohanded/rcl/ghetto
time = 40
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WRENCH)
reqs = list(/obj/item/stack/sheet/metal = 15)
category = CAT_MISC
////////////
//Vehicles//
////////////
/datum/crafting_recipe/wheelchair
name = "Wheelchair"
result = /obj/vehicle/ridden/wheelchair
reqs = list(/obj/item/stack/sheet/plasteel = 2,
/obj/item/stack/rods = 8)
time = 100
category = CAT_MISC
/datum/crafting_recipe/skateboard
name = "Skateboard"
result = /obj/vehicle/ridden/scooter/skateboard
time = 60
reqs = list(/obj/item/stack/sheet/metal = 5,
/obj/item/stack/rods = 10)
category = CAT_MISC
/datum/crafting_recipe/scooter
name = "Scooter"
result = /obj/vehicle/ridden/scooter
time = 65
reqs = list(/obj/item/stack/sheet/metal = 5,
/obj/item/stack/rods = 12)
category = CAT_MISC
/////////
//Toys///
/////////
/datum/crafting_recipe/toysword
name = "Toy Sword"
reqs = list(/obj/item/light/bulb = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4)
result = /obj/item/toy/sword
category = CAT_MISC
/datum/crafting_recipe/extendohand
name = "Extendo-Hand"
reqs = list(/obj/item/bodypart/r_arm/robot = 1, /obj/item/clothing/gloves/boxing = 1)
result = /obj/item/extendohand
category = CAT_MISC
/datum/crafting_recipe/toyneb
name = "Non-Euplastic Blade"
reqs = list(/obj/item/light/tube = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4)
result = /obj/item/toy/sword/cx
category = CAT_MISC
////////////
//Unsorted//
////////////
/datum/crafting_recipe/blackcarpet
name = "Black Carpet"
reqs = list(/obj/item/stack/tile/carpet = 50, /obj/item/toy/crayon/black = 1)
result = /obj/item/stack/tile/carpet/black/fifty
category = CAT_MISC
/datum/crafting_recipe/paperframes
name = "Paper Frames"
result = /obj/item/stack/sheet/paperframes/five
time = 10
reqs = list(/obj/item/stack/sheet/mineral/wood = 5, /obj/item/paper = 20)
category = CAT_MISC
/datum/crafting_recipe/naturalpaper
name = "Hand-Pressed Paper"
time = 30
reqs = list(/datum/reagent/water = 50, /obj/item/stack/sheet/mineral/wood = 1)
tools = list(/obj/item/hatchet)
result = /obj/item/paper_bin/bundlenatural
category = CAT_MISC
/datum/crafting_recipe/bluespacehonker
name = "Bluespace Bike horn"
result = /obj/item/bikehorn/bluespacehonker
time = 10
reqs = list(/obj/item/stack/ore/bluespace_crystal = 1,
/obj/item/toy/crayon/blue = 1,
/obj/item/bikehorn = 1)
category = CAT_MISC
/datum/crafting_recipe/aitater
name = "intelliTater"
result = /obj/item/aicard/aitater
time = 30
reqs = list(/obj/item/aicard = 1,
/obj/item/reagent_containers/food/snacks/grown/potato = 1)
category = CAT_MISC
/datum/crafting_recipe/mousetrap
name = "Mouse Trap"
result = /obj/item/assembly/mousetrap
time = 10
reqs = list(/obj/item/stack/sheet/cardboard = 1,
/obj/item/stack/rods = 1)
category = CAT_MISC
/datum/crafting_recipe/papersack
name = "Paper Sack"
result = /obj/item/storage/box/papersack
time = 10
reqs = list(/obj/item/paper = 5)
category = CAT_MISC
/datum/crafting_recipe/flashlight_eyes
name = "Flashlight Eyes"
result = /obj/item/organ/eyes/robotic/flashlight
time = 10
reqs = list(
/obj/item/flashlight = 2,
/obj/item/restraints/handcuffs/cable = 1
)
category = CAT_MISC
/datum/crafting_recipe/smallcarton
name = "Small Carton"
result = /obj/item/reagent_containers/food/drinks/sillycup/smallcarton
time = 10
reqs = list(/obj/item/stack/sheet/cardboard = 1)
category = CAT_MISC
/datum/crafting_recipe/pressureplate
name = "Pressure Plate"
result = /obj/item/pressure_plate
time = 5
reqs = list(/obj/item/stack/sheet/metal = 1,
/obj/item/stack/tile/plasteel = 1,
/obj/item/stack/cable_coil = 2,
/obj/item/assembly/igniter = 1)
category = CAT_MISC
/datum/crafting_recipe/gold_horn
name = "Golden Bike Horn"
result = /obj/item/bikehorn/golden
time = 20
reqs = list(/obj/item/stack/sheet/mineral/bananium = 5,
/obj/item/bikehorn = 1)
category = CAT_MISC
/datum/crafting_recipe/spooky_camera
name = "Camera Obscura"
result = /obj/item/camera/spooky
time = 15
reqs = list(/obj/item/camera = 1,
/datum/reagent/water/holywater = 10)
parts = list(/obj/item/camera = 1)
category = CAT_MISC
/datum/crafting_recipe/paperwork
name = "Filed Paper Work"
result = /obj/item/folder/paperwork_correct
time = 10 //Takes time for people to file and complete paper work!
tools = list(/obj/item/pen)
reqs = list(/obj/item/folder/paperwork = 1)
category = CAT_MISC
//////////////
//Banners/////
//////////////
/datum/crafting_recipe/command_banner
name = "Command Banner"
result = /obj/item/banner/command/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/captainparade = 1)
category = CAT_MISC
/datum/crafting_recipe/engineering_banner
name = "Engitopia Banner"
result = /obj/item/banner/engineering/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/engineer = 1)
category = CAT_MISC
/datum/crafting_recipe/cargo_banner
name = "Cargonia Banner"
result = /obj/item/banner/cargo/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/cargotech = 1)
category = CAT_MISC
/datum/crafting_recipe/science_banner
name = "Sciencia Banner"
result = /obj/item/banner/science/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/scientist = 1)
category = CAT_MISC
/datum/crafting_recipe/medical_banner
name = "Meditopia Banner"
result = /obj/item/banner/medical/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/medical = 1)
category = CAT_MISC
/datum/crafting_recipe/security_banner
name = "Securistan Banner"
result = /obj/item/banner/security/mundane
time = 40
reqs = list(/obj/item/stack/rods = 2,
/obj/item/clothing/under/rank/security = 1)
category = CAT_MISC
@@ -0,0 +1,113 @@
/datum/crafting_recipe/bonearmor
name = "Bone Armor"
result = /obj/item/clothing/suit/armor/bone
time = 30
reqs = list(/obj/item/stack/sheet/bone = 6)
category = CAT_PRIMAL
/datum/crafting_recipe/bonetalisman
name = "Bone Talisman"
result = /obj/item/clothing/accessory/talisman
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bonecodpiece
name = "Skull Codpiece"
result = /obj/item/clothing/accessory/skullcodpiece
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/bracers
name = "Bone Bracers"
result = /obj/item/clothing/gloves/bracer
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/skullhelm
name = "Skull Helmet"
result = /obj/item/clothing/head/helmet/skull
time = 30
reqs = list(/obj/item/stack/sheet/bone = 4)
category = CAT_PRIMAL
/datum/crafting_recipe/goliathcloak
name = "Goliath Cloak"
result = /obj/item/clothing/suit/hooded/cloak/goliath
time = 50
reqs = list(/obj/item/stack/sheet/leather = 2,
/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/goliath_hide = 2) //it takes 4 goliaths to make 1 cloak if the plates are skinned
category = CAT_PRIMAL
/datum/crafting_recipe/drakecloak
name = "Ash Drake Armour"
result = /obj/item/clothing/suit/hooded/cloak/drake
time = 60
reqs = list(/obj/item/stack/sheet/bone = 10,
/obj/item/stack/sheet/sinew = 2,
/obj/item/stack/sheet/animalhide/ashdrake = 5)
category = CAT_PRIMAL
/datum/crafting_recipe/bonebag
name = "Bone Satchel"
result = /obj/item/storage/backpack/satchel/bone
time = 30
reqs = list(/obj/item/stack/sheet/bone = 3,
/obj/item/stack/sheet/sinew = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/bonedagger
name = "Bone Dagger"
result = /obj/item/kitchen/knife/combat/bone
time = 20
reqs = list(/obj/item/stack/sheet/bone = 2)
category = CAT_PRIMAL
/datum/crafting_recipe/bonespear
name = "Bone Spear"
result = /obj/item/twohanded/bonespear
time = 30
reqs = list(/obj/item/stack/sheet/bone = 4,
/obj/item/stack/sheet/sinew = 1)
category = CAT_PRIMAL
/datum/crafting_recipe/boneaxe
name = "Bone Axe"
result = /obj/item/twohanded/fireaxe/boneaxe
time = 50
reqs = list(/obj/item/stack/sheet/bone = 6,
/obj/item/stack/sheet/sinew = 3)
category = CAT_PRIMAL
/datum/crafting_recipe/bonfire
name = "Bonfire"
time = 60
reqs = list(/obj/item/grown/log = 5)
result = /obj/structure/bonfire
category = CAT_PRIMAL
/datum/crafting_recipe/headpike
name = "Spike Head (Glass Spear)"
time = 65
reqs = list(/obj/item/twohanded/spear = 1,
/obj/item/bodypart/head = 1)
parts = list(/obj/item/bodypart/head = 1,
/obj/item/twohanded/spear = 1)
result = /obj/structure/headpike
category = CAT_PRIMAL
/datum/crafting_recipe/headpikebone
name = "Spike Head (Bone Spear)"
time = 65
reqs = list(/obj/item/twohanded/bonespear = 1,
/obj/item/bodypart/head = 1)
parts = list(/obj/item/bodypart/head = 1,
/obj/item/twohanded/bonespear = 1)
result = /obj/structure/headpike/bone
category = CAT_PRIMAL
@@ -0,0 +1,84 @@
/datum/crafting_recipe/ed209
name = "ED209"
result = /mob/living/simple_animal/bot/ed209
reqs = list(/obj/item/robot_suit = 1,
/obj/item/clothing/head/helmet = 1,
/obj/item/clothing/suit/armor/vest = 1,
/obj/item/bodypart/l_leg/robot = 1,
/obj/item/bodypart/r_leg/robot = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/gun/energy/e_gun/advtaser = 1,
/obj/item/stock_parts/cell = 1,
/obj/item/assembly/prox_sensor = 1)
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER)
time = 60
category = CAT_ROBOT
/datum/crafting_recipe/secbot
name = "Secbot"
result = /mob/living/simple_animal/bot/secbot
reqs = list(/obj/item/assembly/signaler = 1,
/obj/item/clothing/head/helmet/sec = 1,
/obj/item/melee/baton = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
tools = list(TOOL_WELDER)
time = 60
category = CAT_ROBOT
/datum/crafting_recipe/cleanbot
name = "Cleanbot"
result = /mob/living/simple_animal/bot/cleanbot
reqs = list(/obj/item/reagent_containers/glass/bucket = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/floorbot
name = "Floorbot"
result = /mob/living/simple_animal/bot/floorbot
reqs = list(/obj/item/storage/toolbox/mechanical = 1,
/obj/item/stack/tile/plasteel = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/medbot
name = "Medbot"
result = /mob/living/simple_animal/bot/medbot
reqs = list(/obj/item/healthanalyzer = 1,
/obj/item/storage/firstaid = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/r_arm/robot = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/honkbot
name = "Honkbot"
result = /mob/living/simple_animal/bot/honkbot
reqs = list(/obj/item/storage/box/clown = 1,
/obj/item/bodypart/r_arm/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bikehorn/ = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/Firebot
name = "Firebot"
result = /mob/living/simple_animal/bot/firebot
reqs = list(/obj/item/extinguisher = 1,
/obj/item/bodypart/r_arm/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/clothing/head/hardhat/red = 1)
time = 40
category = CAT_ROBOT
/datum/crafting_recipe/potatos
name = "Potat-OS"
reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/aicard = 1 )
result = /obj/item/aicard/potato
category = CAT_ROBOT
@@ -0,0 +1,345 @@
/datum/crafting_recipe/pin_removal
name = "Pin Removal"
result = /obj/item/gun
reqs = list(/obj/item/gun = 1)
parts = list(/obj/item/gun = 1)
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/strobeshield
name = "Strobe Shield"
result = /obj/item/assembly/flash/shield
reqs = list(/obj/item/wallframe/flasher = 1,
/obj/item/assembly/flash/handheld = 1,
/obj/item/shield/riot = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/makeshiftshield
name = "Makeshift Metal Shield"
result = /obj/item/shield/makeshift
reqs = list(/obj/item/stack/cable_coil = 30,
/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/cloth = 2,
/obj/item/stack/sheet/leather = 3)
tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER)
time = 100
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/spear
name = "Spear"
result = /obj/item/twohanded/spear
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/shard = 1,
/obj/item/stack/rods = 1)
parts = list(/obj/item/shard = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/stunprod
name = "Stunprod"
result = /obj/item/melee/baton/cattleprod
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/rods = 1,
/obj/item/assembly/igniter = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/teleprod
name = "Teleprod"
result = /obj/item/melee/baton/cattleprod/teleprod
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/rods = 1,
/obj/item/assembly/igniter = 1,
/obj/item/stack/ore/bluespace_crystal = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/bola
name = "Bola"
result = /obj/item/restraints/legcuffs/bola
reqs = list(/obj/item/restraints/handcuffs/cable = 1,
/obj/item/stack/sheet/metal = 6)
time = 20//15 faster than crafting them by hand!
category= CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/tailclub
name = "Tail Club"
result = /obj/item/tailclub
reqs = list(/obj/item/organ/tail/lizard = 1,
/obj/item/stack/sheet/metal = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/tailwhip
name = "Liz O' Nine Tails"
result = /obj/item/melee/chainofcommand/tailwhip
reqs = list(/obj/item/organ/tail/lizard = 1,
/obj/item/stack/cable_coil = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/catwhip
name = "Cat O' Nine Tails"
result = /obj/item/melee/chainofcommand/tailwhip/kitty
reqs = list(/obj/item/organ/tail/cat = 1,
/obj/item/stack/cable_coil = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/chainsaw
name = "Chainsaw"
result = /obj/item/twohanded/required/chainsaw
reqs = list(/obj/item/circular_saw = 1,
/obj/item/stack/cable_coil = 3,
/obj/item/stack/sheet/plasteel = 5)
tools = list(TOOL_WELDER)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
//////////////////
///BOMB CRAFTING//
//////////////////
/datum/crafting_recipe/chemical_payload
name = "Chemical Payload (C4)"
result = /obj/item/bombcore/chemical
reqs = list(
/obj/item/stock_parts/matter_bin = 1,
/obj/item/grenade/plastic/c4 = 1,
/obj/item/grenade/chem_grenade = 2
)
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 30
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/chemical_payload2
name = "Chemical Payload (Gibtonite)"
result = /obj/item/bombcore/chemical
reqs = list(
/obj/item/stock_parts/matter_bin = 1,
/obj/item/twohanded/required/gibtonite = 1,
/obj/item/grenade/chem_grenade = 2
)
parts = list(/obj/item/stock_parts/matter_bin = 1, /obj/item/grenade/chem_grenade = 2)
time = 50
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/molotov
name = "Molotov"
result = /obj/item/reagent_containers/food/drinks/bottle/molotov
reqs = list(/obj/item/reagent_containers/rag = 1,
/obj/item/reagent_containers/food/drinks/bottle = 1)
parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1)
time = 40
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/IED
name = "IED"
result = /obj/item/grenade/iedcasing
reqs = list(/datum/reagent/fuel = 50,
/obj/item/stack/cable_coil = 1,
/obj/item/assembly/igniter = 1,
/obj/item/reagent_containers/food/drinks/soda_cans = 1)
parts = list(/obj/item/reagent_containers/food/drinks/soda_cans = 1)
time = 15
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/lance
name = "Explosive Lance (Grenade)"
result = /obj/item/twohanded/spear
reqs = list(/obj/item/twohanded/spear = 1,
/obj/item/grenade = 1)
parts = list(/obj/item/twohanded/spear = 1,
/obj/item/grenade = 1)
time = 15
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
//////////////////
///GUNS CRAFTING//
//////////////////
/datum/crafting_recipe/smartdartgun
name = "Smart dartgun"
result = /obj/item/gun/syringe/dart
reqs = list(/obj/item/stack/sheet/metal = 10,
/obj/item/stack/sheet/glass = 5,
/obj/item/tank/internals = 1,
/obj/item/reagent_containers/glass/beaker = 1,
/obj/item/stack/sheet/plastic = 5,
/obj/item/stack/cable_coil = 1)
time = 150 //It's a gun
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/rapiddartgun
name = "Rapid Smart dartgun"
result = /obj/item/gun/syringe/dart/rapiddart
reqs = list(
/obj/item/gun/syringe/dart = 1,
/obj/item/stack/sheet/plastic = 5,
/obj/item/stack/cable_coil = 1,
/obj/item/reagent_containers/glass/beaker = 1
)
parts = list(/obj/item/reagent_containers/glass/beaker = 1)
time = 120 //Modifying your gun
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/improvised_pneumatic_cannon
name = "Pneumatic Cannon"
result = /obj/item/pneumatic_cannon/ghetto
tools = list(TOOL_WELDER, TOOL_WRENCH)
reqs = list(/obj/item/stack/sheet/metal = 4,
/obj/item/stack/packageWrap = 8,
/obj/item/pipe = 2)
time = 300
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/flamethrower //Gun*
name = "Flamethrower"
result = /obj/item/flamethrower
reqs = list(/obj/item/weldingtool = 1,
/obj/item/assembly/igniter = 1,
/obj/item/stack/rods = 1)
parts = list(/obj/item/assembly/igniter = 1,
/obj/item/weldingtool = 1)
tools = list(TOOL_SCREWDRIVER)
time = 10
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/ishotgun
name = "Improvised Shotgun"
result = /obj/item/gun/ballistic/revolver/doublebarrel/improvised
reqs = list(/obj/item/weaponcrafting/receiver = 1,
/obj/item/pipe = 1,
/obj/item/weaponcrafting/stock = 1,
/obj/item/stack/packageWrap = 5)
tools = list(TOOL_SCREWDRIVER)
time = 100
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
/datum/crafting_recipe/irifle
name = "Improvised Rifle(7.62mm)"
result = /obj/item/gun/ballistic/shotgun/boltaction/improvised
reqs = list(/obj/item/weaponcrafting/receiver = 1,
/obj/item/pipe = 2,
/obj/item/weaponcrafting/stock = 1,
/obj/item/stack/packageWrap = 5)
tools = list(TOOL_SCREWDRIVER)
time = 100
category = CAT_WEAPONRY
subcategory = CAT_WEAPON
//////////////////
///AMMO CRAFTING//
//////////////////
/datum/crafting_recipe/smartdart
name = "Medical smartdart"
result = /obj/item/reagent_containers/syringe/dart
reqs = list(/obj/item/stack/sheet/metal = 1,
/obj/item/stack/sheet/glass = 1,
/obj/item/stack/sheet/plastic = 1)
time = 10
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/meteorslug
name = "Meteorslug Shell"
result = /obj/item/ammo_casing/shotgun/meteorslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/rcd_ammo = 1,
/obj/item/stock_parts/manipulator = 2)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/pulseslug
name = "Pulse Slug Shell"
result = /obj/item/ammo_casing/shotgun/pulseslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/stock_parts/capacitor/adv = 2,
/obj/item/stock_parts/micro_laser/ultra = 1)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/dragonsbreath
name = "Dragonsbreath Shell"
result = /obj/item/ammo_casing/shotgun/dragonsbreath
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/datum/reagent/phosphorus = 5)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/frag12
name = "FRAG-12 Shell"
result = /obj/item/ammo_casing/shotgun/frag12
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/datum/reagent/glycerol = 5,
/datum/reagent/toxin/acid = 5,
/datum/reagent/toxin/acid/fluacid = 5)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/ionslug
name = "Ion Scatter Shell"
result = /obj/item/ammo_casing/shotgun/ion
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/stock_parts/micro_laser/ultra = 1,
/obj/item/stock_parts/subspace/crystal = 1)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/improvisedslug
name = "Improvised Shotgun Shell"
result = /obj/item/ammo_casing/shotgun/improvised
reqs = list(/obj/item/grenade/chem_grenade = 1,
/obj/item/stack/sheet/metal = 1,
/obj/item/stack/cable_coil = 1,
/datum/reagent/fuel = 10)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
/datum/crafting_recipe/laserslug
name = "Scatter Laser Shell"
result = /obj/item/ammo_casing/shotgun/laserslug
reqs = list(/obj/item/ammo_casing/shotgun/techshell = 1,
/obj/item/stock_parts/capacitor/adv = 1,
/obj/item/stock_parts/micro_laser/high = 1)
tools = list(TOOL_SCREWDRIVER)
time = 5
category = CAT_WEAPONRY
subcategory = CAT_AMMO
+4 -3
View File
@@ -32,8 +32,6 @@
determine_wave_type()
/datum/round_event/meteor_wave/proc/determine_wave_type()
if(SSevents.holidays && SSevents.holidays[HALLOWEEN])
wave_name = "halloween"
if(!wave_name)
wave_name = pickweight(list(
"normal" = 50,
@@ -45,7 +43,10 @@
if("threatening")
wave_type = GLOB.meteors_threatening
if("catastrophic")
wave_type = GLOB.meteors_catastrophic
if(SSevents.holidays && SSevents.holidays[HALLOWEEN])
wave_type = GLOB.meteorsSPOOKY
else
wave_type = GLOB.meteors_catastrophic
if("meaty")
wave_type = GLOB.meteorsB
if("space dust")
+4 -2
View File
@@ -771,7 +771,7 @@ GLOBAL_LIST_INIT(hallucination_list, list(
..()
var/turf/source = random_far_turf()
if(!sound_type)
sound_type = pick("airlock","airlock pry","console","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack")
sound_type = pick("airlock","airlock pry","console","flash","explosion","far explosion","mech","glass","alarm","beepsky","mech","wall decon","door hack")
feedback_details += "Type: [sound_type]"
//Strange audio
switch(sound_type)
@@ -788,6 +788,8 @@ GLOBAL_LIST_INIT(hallucination_list, list(
target.playsound_local(source,'sound/effects/explosion1.ogg', 50, 1)
else
target.playsound_local(source, 'sound/effects/explosion2.ogg', 50, 1)
if("flash")
target.playsound_local(source, 'sound/weapons/flash.ogg', 50, 1)
if("far explosion")
target.playsound_local(source, 'sound/effects/explosionfar.ogg', 50, 1)
if("glass")
@@ -1291,4 +1293,4 @@ GLOBAL_LIST_INIT(hallucination_list, list(
H.hal_target = target
H.preparePixelProjectile(target, start)
H.fire()
qdel(src)
qdel(src)
+6 -2
View File
@@ -121,7 +121,7 @@
return list(ACCESS_CENT_GENERAL, ACCESS_CENT_LIVING, ACCESS_CENT_BAR)
/proc/get_all_accesses()
return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT,
return list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_MORGUE, ACCESS_RD,
ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_CHEMISTRY, ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_MAINT_TUNNELS,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CHANGE_IDS, ACCESS_AI_UPLOAD,
@@ -157,7 +157,7 @@
if(1) //station general
return list(ACCESS_KITCHEN,ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_LIBRARY, ACCESS_THEATRE, ACCESS_LAWYER)
if(2) //security
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS)
return list(ACCESS_SEC_DOORS, ACCESS_WEAPONS, ACCESS_SECURITY, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_FORENSICS_LOCKERS, ACCESS_COURT, ACCESS_HOS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,)
if(3) //medbay
return list(ACCESS_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_SURGERY, ACCESS_CMO)
if(4) //research
@@ -312,6 +312,10 @@
return "Gateway"
if(ACCESS_SEC_DOORS)
return "Brig"
if(ACCESS_ENTER_GENPOP)
return "Prison Turnstile Entrance"
if(ACCESS_LEAVE_GENPOP)
return "Prison Turnstile Exit"
if(ACCESS_MINERAL_STOREROOM)
return "Mineral Storage"
if(ACCESS_MINISAT)
@@ -19,11 +19,11 @@
outfit = /datum/outfit/job/hos
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS,
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING,
ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS,
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP,
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_RESEARCH, ACCESS_ENGINE, ACCESS_MINING, ACCESS_MEDICAL, ACCESS_CONSTRUCTION, ACCESS_MAILSORTING,
ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
@@ -15,8 +15,8 @@
outfit = /datum/outfit/job/security
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) // See /datum/job/officer/get_access()
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_MINERAL_STOREROOM) // See /datum/job/officer/get_access()
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
+2 -2
View File
@@ -15,8 +15,8 @@
outfit = /datum/outfit/job/warden
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access()
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_ARMORY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_ENTER_GENPOP, ACCESS_LEAVE_GENPOP, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access()
mind_traits = list(TRAIT_LAW_ENFORCEMENT_METABOLISM)
@@ -11,6 +11,7 @@
heat_protection = CHEST|GROIN|LEGS|ARMS
hoodtype = /obj/item/clothing/head/hooded/explorer
armor = list("melee" = 30, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 50)
flags_inv = HIDEJUMPSUIT|HIDETAUR
allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe)
resistance_flags = FIRE_PROOF
tauric = TRUE //Citadel Add for tauric hardsuits
@@ -129,7 +130,7 @@
/obj/item/clothing/suit/hooded/explorer/seva
name = "SEVA Suit"
desc = "A fire-proof suit for exploring hot environments."
desc = "A fire-proof suit for exploring hot environments. Its design and material make it easier for a Goliath to keep their grip on the wearer."
icon_state = "seva"
item_state = "seva"
w_class = WEIGHT_CLASS_BULKY
@@ -141,7 +142,7 @@
/obj/item/clothing/head/hooded/explorer/seva
name = "SEVA Hood"
desc = "A fire-proof hood for exploring hot environments."
desc = "A fire-proof hood for exploring hot environments. Its design and material make it easier for a Goliath to keep their grip on the wearer."
icon_state = "seva"
item_state = "seva"
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
@@ -159,7 +160,7 @@
/obj/item/clothing/suit/hooded/explorer/exo
name = "Exo-suit"
desc = "A robust suit for exploring dangerous environments."
desc = "A robust suit for fighting dangerous animals. Its design and material make it harder for a Goliath to keep their grip on the wearer."
icon_state = "exo"
item_state = "exo"
w_class = WEIGHT_CLASS_BULKY
@@ -170,7 +171,7 @@
/obj/item/clothing/head/hooded/explorer/exo
name = "Exo-hood"
desc = "A robust helmet for exploring dangerous environments."
desc = "A robust helmet for fighting dangerous animals. Its design and material make it harder for a Goliath to keep their grip on the wearer."
icon_state = "exo"
item_state = "exo"
armor = list("melee" = 65, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0)
@@ -17,6 +17,8 @@
hair_color = random_short_color()
facial_hair_color = hair_color
eye_color = random_eye_color()
horn_color = "85615a"
wing_color = "fff"
if(!pref_species)
var/rando_race = pick(GLOB.roundstart_races)
pref_species = new rando_race()
@@ -30,6 +30,7 @@
// Decorative wings
/datum/sprite_accessory/deco_wings
icon = 'icons/mob/wings.dmi'
color_src = WINGCOLOR
/datum/sprite_accessory/deco_wings/plain
name = "Plain"
@@ -104,6 +105,22 @@
center = TRUE
dimension_y = 34
/datum/sprite_accessory/deco_wings/bee
name = "Bee"
icon_state = "bee"
/datum/sprite_accessory/deco_wings/fairy
name = "Fairy"
icon_state = "fairy"
/datum/sprite_accessory/deco_wings/bat
name = "Bat"
icon_state = "bat"
/datum/sprite_accessory/deco_wings/feathery
name = "Feathery"
icon_state = "feathery"
/datum/sprite_accessory/deco_wings/none
name = "None"
icon_state = "none"
@@ -113,7 +130,7 @@
/datum/sprite_accessory/insect_wings
icon = 'icons/mob/wings.dmi'
color_src = null
color_src = WINGCOLOR
/datum/sprite_accessory/insect_wings/none
name = "None"
@@ -183,35 +200,10 @@
name = "Snow"
icon_state = "snow"
/datum/sprite_accessory/insect_wings/colored
name = "Colored (Hair)"
icon_state = "snowplain"
color_src = HAIR
/datum/sprite_accessory/insect_fluff/colored1
name = "Colored (Primary)"
icon_state = "snowplain"
color_src = MUTCOLORS
/datum/sprite_accessory/insect_fluff/colored2
name = "Colored (Secondary)"
icon_state = "snowplain"
color_src = MUTCOLORS2
/datum/sprite_accessory/insect_fluff/colored3
name = "Colored (Tertiary)"
icon_state = "snowplain"
color_src = MUTCOLORS3
/datum/sprite_accessory/insect_wings/bee
name = "Bee"
icon_state = "bee"
/datum/sprite_accessory/insect_wings/bee_color
name = "Bee (Hair colored)"
icon_state = "bee"
color_src = HAIR
/datum/sprite_accessory/insect_wings/fairy
name = "Fairy"
icon_state = "fairy"
@@ -111,7 +111,7 @@
else //When it is removed via surgery at a late stage, rather than forced.
new_xeno.visible_message("<span class='danger'>[new_xeno] wriggles out of [owner]!</span>", "<span class='userdanger'>You exit [owner], your previous host.</span>")
owner.adjustBruteLoss(40)
owner.cut_overlay(overlay)
owner.cut_overlay(overlay)
qdel(src)
@@ -119,19 +119,19 @@
Proc: AddInfectionImages(C)
Des: Adds the infection image to all aliens for this embryo
----------------------------------------*/
/obj/item/organ/body_egg/alien_embryo/AddInfectionImages()
/obj/item/organ/body_egg/alien_embryo/AddInfectionImages(mob/living/carbon/C)
for(var/mob/living/carbon/alien/alien in GLOB.player_list)
if(alien.client)
var/I = image('icons/mob/alien.dmi', loc = owner, icon_state = "infected[stage]")
var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[stage]")
alien.client.images += I
/*----------------------------------------
Proc: RemoveInfectionImage(C)
Des: Removes all images from the mob infected by this embryo
----------------------------------------*/
/obj/item/organ/body_egg/alien_embryo/RemoveInfectionImages()
/obj/item/organ/body_egg/alien_embryo/RemoveInfectionImages(mob/living/carbon/C)
for(var/mob/living/carbon/alien/alien in GLOB.player_list)
if(alien.client)
for(var/image/I in alien.client.images)
if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == owner)
if(dd_hasprefix_case(I.icon_state, "infected") && I.loc == C)
qdel(I)
@@ -19,6 +19,8 @@
var/horn_color = "85615a" //specific horn colors, because why not?
var/wing_color = "fff" //wings too
var/skin_tone = "caucasian1" //Skin tone
var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup
@@ -37,6 +37,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
var/hair_alpha = 255 // the alpha used by the hair. 255 is completely solid, 0 is transparent.
var/horn_color //specific horn colors, because why not?
var/wing_color
var/use_skintones = 0 // does it use skintones or not? (spoiler alert this is only used by humans)
var/exotic_blood = "" // If your race wants to bleed something other than bog standard blood, change this to reagent id.
@@ -869,6 +870,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
accessory_overlay.color = "#[H.eye_color]"
if(HORNCOLOR)
accessory_overlay.color = "#[H.horn_color]"
if(WINGCOLOR)
accessory_overlay.color = "#[H.wing_color]"
else
accessory_overlay.color = forced_colour
else
@@ -946,6 +949,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(HORNCOLOR)
extra_accessory_overlay.color = "#[H.horn_color]"
if(WINGCOLOR)
extra_accessory_overlay.color = "#[H.wing_color]"
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
extra_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
@@ -985,6 +990,8 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
extra2_accessory_overlay.color = "#[H.hair_color]"
if(HORNCOLOR)
extra2_accessory_overlay.color = "#[H.horn_color]"
if(WINGCOLOR)
extra2_accessory_overlay.color = "#[H.wing_color]"
if(OFFSET_MUTPARTS in H.dna.species.offset_features)
extra2_accessory_overlay.pixel_x += H.dna.species.offset_features[OFFSET_MUTPARTS][1]
@@ -3,7 +3,7 @@
id = "insect"
say_mod = "flutters"
default_color = "00FF00"
species_traits = list(LIPS,NOEYES,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR)
species_traits = list(LIPS,NOEYES,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR)
inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG)
mutant_bodyparts = list("mam_ears", "mam_snout", "mam_tail", "taur", "insect_wings", "mam_snouts", "insect_fluff","horns")
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_tail" = "None", "mam_ears" = "None",
@@ -4,8 +4,8 @@
id = "felinid"
limbs_id = "human"
mutant_bodyparts = list("mam_ears", "mam_tail")
default_features = list("mcolor" = "FFF", "mam_tail" = "Cat", "mam_ears" = "Cat", "wings" = "None")
mutant_bodyparts = list("mam_ears", "mam_tail", "deco_wings")
default_features = list("mcolor" = "FFF", "mam_tail" = "Cat", "mam_ears" = "Cat", "wings" = "None", "deco_wings" = "None")
mutantears = /obj/item/organ/ears/cat
mutanttail = /obj/item/organ/tail/cat
@@ -3,7 +3,7 @@
id = "mammal"
default_color = "4B4B4B"
should_draw_citadel = TRUE
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR)
species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR)
inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID)
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "deco_wings", "taur", "horns", "legs")
default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "deco_wings" = "None",
@@ -1,41 +1,42 @@
/datum/species/human
name = "Human"
id = "human"
default_color = "FFFFFF"
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS_PARTSONLY)
mutant_bodyparts = list("ears", "tail_human", "wings", "taur") // CITADEL EDIT gives humans snowflake parts
default_features = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF","tail_human" = "None", "ears" = "None", "wings" = "None", "taur" = "None")
use_skintones = 1
skinned_type = /obj/item/stack/sheet/animalhide/human
disliked_food = GROSS | RAW
liked_food = JUNKFOOD | FRIED
/datum/species/human/qualifies_for_rank(rank, list/features)
return TRUE //Pure humans are always allowed in all roles.
/datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
if(H)
stop_wagging_tail(H)
/datum/species/human/spec_stun(mob/living/carbon/human/H,amount)
if(H)
stop_wagging_tail(H)
. = ..()
/datum/species/human/can_wag_tail(mob/living/carbon/human/H)
return ("tail_human" in mutant_bodyparts) || ("waggingtail_human" in mutant_bodyparts)
/datum/species/human/is_wagging_tail(mob/living/carbon/human/H)
return ("waggingtail_human" in mutant_bodyparts)
/datum/species/human/start_wagging_tail(mob/living/carbon/human/H)
if("tail_human" in mutant_bodyparts)
mutant_bodyparts -= "tail_human"
mutant_bodyparts |= "waggingtail_human"
H.update_body()
/datum/species/human/stop_wagging_tail(mob/living/carbon/human/H)
if("waggingtail_human" in mutant_bodyparts)
mutant_bodyparts -= "waggingtail_human"
mutant_bodyparts |= "tail_human"
H.update_body()
/datum/species/human
name = "Human"
id = "human"
default_color = "FFFFFF"
species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS_PARTSONLY,WINGCOLOR)
mutant_bodyparts = list("ears", "tail_human", "wings", "taur", "deco_wings") // CITADEL EDIT gives humans snowflake parts
default_features = list("mcolor" = "FFF", "mcolor2" = "FFF","mcolor3" = "FFF","tail_human" = "None", "ears" = "None", "wings" = "None", "taur" = "None", "deco_wings" = "None")
use_skintones = 1
skinned_type = /obj/item/stack/sheet/animalhide/human
disliked_food = GROSS | RAW
liked_food = JUNKFOOD | FRIED
/datum/species/human/qualifies_for_rank(rank, list/features)
return TRUE //Pure humans are always allowed in all roles.
/datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
if(H)
stop_wagging_tail(H)
/datum/species/human/spec_stun(mob/living/carbon/human/H,amount)
if(H)
stop_wagging_tail(H)
. = ..()
/datum/species/human/can_wag_tail(mob/living/carbon/human/H)
return ("tail_human" in mutant_bodyparts) || ("waggingtail_human" in mutant_bodyparts)
/datum/species/human/is_wagging_tail(mob/living/carbon/human/H)
return ("waggingtail_human" in mutant_bodyparts)
/datum/species/human/start_wagging_tail(mob/living/carbon/human/H)
if("tail_human" in mutant_bodyparts)
mutant_bodyparts -= "tail_human"
mutant_bodyparts |= "waggingtail_human"
H.update_body()
/datum/species/human/stop_wagging_tail(mob/living/carbon/human/H)
if("waggingtail_human" in mutant_bodyparts)
mutant_bodyparts -= "waggingtail_human"
mutant_bodyparts |= "tail_human"
H.update_body()
@@ -4,10 +4,10 @@
id = "jelly"
default_color = "00FF90"
say_mod = "chirps"
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD,WINGCOLOR)
mutantlungs = /obj/item/organ/lungs/slime
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_snouts", "taur") //CIT CHANGE
default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None") //CIT CHANGE
mutant_bodyparts = list("mam_tail", "mam_ears", "mam_snouts", "taur", "deco_wings") //CIT CHANGE
default_features = list("mcolor" = "FFF", "mam_tail" = "None", "mam_ears" = "None", "mam_snouts" = "None", "taur" = "None", "deco_wings" = "None") //CIT CHANGE
inherent_traits = list(TRAIT_TOXINLOVER)
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = "slimejelly"
@@ -4,16 +4,16 @@
id = "lizard"
say_mod = "hisses"
default_color = "00FF00"
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS,HORNCOLOR)
species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS,HORNCOLOR,WINGCOLOR)
inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_REPTILE)
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur")
mutant_bodyparts = list("tail_lizard", "snout", "spines", "horns", "frills", "body_markings", "legs", "taur", "deco_wings")
mutanttongue = /obj/item/organ/tongue/lizard
mutanttail = /obj/item/organ/tail/lizard
coldmod = 1.5
heatmod = 0.67
default_features = list("mcolor" = "0F0", "mcolor2" = "0F0", "mcolor3" = "0F0", "tail_lizard" = "Smooth", "snout" = "Round",
"horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None",
"legs" = "Digitigrade", "taur" = "None")
"legs" = "Digitigrade", "taur" = "None", "deco_wings" = "None")
attack_verb = "slash"
attack_sound = 'sound/weapons/slash.ogg'
miss_sound = 'sound/weapons/slashmiss.ogg'
@@ -22,6 +22,7 @@
/datum/species/skeleton/space
name = "Spooky Spacey Skeleton"
id = "spaceskeleton"
limbs_id = "skeleton"
blacklisted = 1
inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER)
@@ -18,6 +18,7 @@
/datum/species/zombie/notspaceproof
id = "notspaceproofzombie"
limbs_id = "zombie"
blacklisted = 0
inherent_traits = list(TRAIT_RESISTCOLD,TRAIT_RADIMMUNE,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NOBREATH,TRAIT_NODEATH,TRAIT_FAKEDEATH)
+4 -4
View File
@@ -79,7 +79,7 @@
/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE)
/mob/living/proc/apply_effect(effect = 0,effecttype = EFFECT_STUN, blocked = FALSE, knockdown_stamoverride, knockdown_stammax)
var/hit_percent = (100-blocked)/100
if(!effect || (hit_percent <= 0))
return 0
@@ -87,7 +87,7 @@
if(EFFECT_STUN)
Stun(effect * hit_percent)
if(EFFECT_KNOCKDOWN)
Knockdown(effect * hit_percent)
Knockdown(effect * hit_percent, override_stamdmg = knockdown_stammax ? CLAMP(knockdown_stamoverride, 0, knockdown_stammax-getStaminaLoss()) : knockdown_stamoverride)
if(EFFECT_UNCONSCIOUS)
Unconscious(effect * hit_percent)
if(EFFECT_IRRADIATE)
@@ -107,13 +107,13 @@
return 1
/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0)
/mob/living/proc/apply_effects(stun = 0, knockdown = 0, unconscious = 0, irradiate = 0, slur = 0, stutter = 0, eyeblur = 0, drowsy = 0, blocked = FALSE, stamina = 0, jitter = 0, kd_stamoverride, kd_stammax)
if(blocked >= 100)
return 0
if(stun)
apply_effect(stun, EFFECT_STUN, blocked)
if(knockdown)
apply_effect(knockdown, EFFECT_KNOCKDOWN, blocked)
apply_effect(knockdown, EFFECT_KNOCKDOWN, blocked, kd_stamoverride, kd_stammax)
if(unconscious)
apply_effect(unconscious, EFFECT_UNCONSCIOUS, blocked)
if(irradiate)
@@ -226,6 +226,9 @@
to_chat(src,"<span class='userdanger'>ERROR: Module installer reply timeout. Please check internal connections.</span>")
return
if(!CONFIG_GET(flag/disable_secborg) && GLOB.security_level < CONFIG_GET(number/minimum_secborg_alert))
to_chat(src, "<span class='notice'>NOTICE: Due to local station regulations, the security cyborg module and its variants are only available during [num2seclevel(CONFIG_GET(number/minimum_secborg_alert))] alert and greater.</span>")
var/list/modulelist = list("Standard" = /obj/item/robot_module/standard, \
"Engineering" = /obj/item/robot_module/engineering, \
"Medical" = /obj/item/robot_module/medical, \
@@ -234,7 +237,7 @@
"Service" = /obj/item/robot_module/butler)
if(!CONFIG_GET(flag/disable_peaceborg))
modulelist["Peacekeeper"] = /obj/item/robot_module/peacekeeper
if(!CONFIG_GET(flag/disable_secborg))
if(BORG_SEC_AVAILABLE)
modulelist["Security"] = /obj/item/robot_module/security
modulelist += get_cit_modules() //Citadel change - adds Citadel's borg modules.
@@ -30,7 +30,7 @@
C.adjustBruteLoss(-5)
C.adjustFireLoss(-5)
C.adjustOxyLoss(-5)
C.adjustToxLoss(-5)
C.adjustToxLoss(-5, forced = TRUE)
var/obj/effect/temp_visual/heal/H = new /obj/effect/temp_visual/heal(get_turf(C))
if(namedatum)
H.color = namedatum.colour

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