mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
Merge branch 'master' into RemoveSetBackground
This commit is contained in:
@@ -19323,7 +19323,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/port)
|
||||
/area/quartermaster/warehouse)
|
||||
"aWD" = (
|
||||
/obj/structure/reagent_dispensers/fueltank,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -19816,7 +19816,7 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/port)
|
||||
/area/quartermaster/warehouse)
|
||||
"aXF" = (
|
||||
/obj/effect/landmark/event_spawn,
|
||||
/turf/open/floor/plasteel/vault{
|
||||
@@ -19850,7 +19850,7 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/port)
|
||||
/area/quartermaster/warehouse)
|
||||
"aXK" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
@@ -20003,7 +20003,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/port)
|
||||
/area/quartermaster/warehouse)
|
||||
"aYd" = (
|
||||
/obj/structure/chair/office/dark,
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
@@ -20591,7 +20591,7 @@
|
||||
"aZF" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/port)
|
||||
/area/quartermaster/warehouse)
|
||||
"aZG" = (
|
||||
/obj/machinery/light_switch{
|
||||
pixel_y = 28
|
||||
@@ -20617,7 +20617,7 @@
|
||||
/obj/item/stack/sheet/cardboard,
|
||||
/obj/item/stack/rods/fifty,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aZJ" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/device/camera/detective,
|
||||
@@ -21037,7 +21037,7 @@
|
||||
/area/hallway/primary/starboard)
|
||||
"baS" = (
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"baT" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -21076,7 +21076,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/closet/crate,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"baZ" = (
|
||||
/obj/machinery/status_display{
|
||||
layer = 4;
|
||||
@@ -21229,7 +21229,7 @@
|
||||
/obj/structure/closet/crate,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bbu" = (
|
||||
/obj/machinery/power/apc{
|
||||
dir = 1;
|
||||
@@ -21380,7 +21380,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bbQ" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/reagent_containers/food/drinks/bottle/whiskey{
|
||||
@@ -21398,7 +21398,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bbT" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/device/flashlight/lamp/green,
|
||||
@@ -21662,13 +21662,13 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bcF" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bcG" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/computer/security/wooden_tv,
|
||||
@@ -21690,7 +21690,7 @@
|
||||
},
|
||||
/obj/structure/closet/crate/freezer,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bcK" = (
|
||||
/obj/structure/rack,
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
@@ -21741,7 +21741,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bcS" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -21751,13 +21751,13 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bcT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bcU" = (
|
||||
/obj/item/stack/tile/plasteel,
|
||||
/turf/open/space,
|
||||
@@ -22129,7 +22129,7 @@
|
||||
"bdS" = (
|
||||
/obj/structure/closet/crate/internals,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bdT" = (
|
||||
/obj/machinery/power/apc{
|
||||
dir = 8;
|
||||
@@ -22148,7 +22148,7 @@
|
||||
"bdU" = (
|
||||
/obj/structure/closet/crate/medical,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bdV" = (
|
||||
/obj/item/stack/sheet/metal,
|
||||
/turf/open/floor/plating/airless,
|
||||
@@ -22405,7 +22405,7 @@
|
||||
},
|
||||
/obj/structure/closet/crate,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bey" = (
|
||||
/turf/open/floor/plasteel/white/corner{
|
||||
dir = 8
|
||||
@@ -22447,7 +22447,7 @@
|
||||
},
|
||||
/obj/structure/closet/crate,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"beE" = (
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -22691,7 +22691,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/item/stack/sheet/cardboard,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bfh" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
@@ -22702,7 +22702,7 @@
|
||||
"bfi" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bfj" = (
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
/obj/structure/disposaloutlet{
|
||||
@@ -23153,7 +23153,7 @@
|
||||
dir = 9
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/maintenance/port)
|
||||
/area/quartermaster/warehouse)
|
||||
"bgz" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk,
|
||||
@@ -23162,7 +23162,7 @@
|
||||
"bgA" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bgB" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 6
|
||||
@@ -23760,7 +23760,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"bhX" = (
|
||||
/obj/structure/disposalpipe/sorting/wrap{
|
||||
dir = 1
|
||||
@@ -46793,7 +46793,7 @@
|
||||
"ckQ" = (
|
||||
/obj/structure/closet/cardboard,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"ckS" = (
|
||||
/obj/structure/closet/cardboard,
|
||||
/turf/open/floor/plating,
|
||||
@@ -52719,7 +52719,7 @@
|
||||
/obj/effect/landmark/event_spawn,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"cBj" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/folder/blue,
|
||||
@@ -57013,6 +57013,47 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/sleeper)
|
||||
"QoZ" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qpa" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qpb" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/power/apc{
|
||||
dir = 4;
|
||||
name = "Cargo Warehouse APC";
|
||||
areastring = "/area/quartermaster/warehouse";
|
||||
pixel_x = 26
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"Qpc" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qpd" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qpe" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qpf" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qpg" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"Qph" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaa
|
||||
@@ -77186,7 +77227,7 @@ aWu
|
||||
aYa
|
||||
aZD
|
||||
aZD
|
||||
aZD
|
||||
Qpb
|
||||
aZD
|
||||
aZD
|
||||
bff
|
||||
@@ -77705,7 +77746,7 @@ baS
|
||||
bdS
|
||||
bdU
|
||||
ckQ
|
||||
aZE
|
||||
Qpg
|
||||
bjq
|
||||
bjr
|
||||
bjr
|
||||
@@ -78219,7 +78260,7 @@ bcR
|
||||
bcE
|
||||
baS
|
||||
bex
|
||||
bhY
|
||||
aZF
|
||||
bgu
|
||||
bic
|
||||
bku
|
||||
@@ -78476,7 +78517,7 @@ bcS
|
||||
bbt
|
||||
bfi
|
||||
beD
|
||||
aZE
|
||||
Qph
|
||||
aZE
|
||||
biA
|
||||
bmg
|
||||
@@ -78726,13 +78767,13 @@ aTH
|
||||
aPK
|
||||
aWz
|
||||
aWC
|
||||
aZE
|
||||
aZE
|
||||
aZE
|
||||
QoZ
|
||||
Qpa
|
||||
Qpc
|
||||
bcT
|
||||
aZE
|
||||
aZE
|
||||
aZE
|
||||
Qpd
|
||||
Qpe
|
||||
Qpf
|
||||
aZE
|
||||
bju
|
||||
biv
|
||||
|
||||
@@ -14590,6 +14590,9 @@
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/decal/cleanable/oil,
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"aKl" = (
|
||||
@@ -14867,6 +14870,9 @@
|
||||
req_access_txt = "31"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"aLi" = (
|
||||
@@ -15319,27 +15325,27 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMp" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMq" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMr" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMs" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
@@ -15348,7 +15354,7 @@
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMt" = (
|
||||
/obj/structure/closet/cardboard,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -15362,20 +15368,27 @@
|
||||
dir = 2
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMu" = (
|
||||
/obj/item/cigbutt/cigarbutt,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMv" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/power/apc{
|
||||
dir = 4;
|
||||
name = "Cargo Warehouse APC";
|
||||
areastring = "/area/quartermaster/warehouse";
|
||||
pixel_x = 26
|
||||
},
|
||||
/obj/structure/cable,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aMw" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 5
|
||||
@@ -15952,20 +15965,20 @@
|
||||
pixel_x = -32
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aNO" = (
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aNP" = (
|
||||
/obj/structure/closet/crate,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aNQ" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 27
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aNR" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -16498,33 +16511,33 @@
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aOZ" = (
|
||||
/obj/item/stack/sheet/cardboard,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aPa" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aPb" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aPc" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aPd" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating,
|
||||
@@ -16904,16 +16917,16 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aQd" = (
|
||||
/obj/item/device/flashlight,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aQe" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aQf" = (
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen";
|
||||
@@ -16921,11 +16934,11 @@
|
||||
},
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aQg" = (
|
||||
/obj/structure/closet/crate/medical,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aQh" = (
|
||||
/turf/closed/wall/mineral/titanium,
|
||||
/area/shuttle/supply)
|
||||
@@ -17446,7 +17459,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aRo" = (
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
id = "qm_warehouse";
|
||||
@@ -17455,7 +17468,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aRp" = (
|
||||
/obj/machinery/door/poddoor/shutters{
|
||||
id = "qm_warehouse";
|
||||
@@ -17463,11 +17476,11 @@
|
||||
},
|
||||
/obj/effect/turf_decal/delivery,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aRq" = (
|
||||
/obj/structure/closet/crate/internals,
|
||||
/turf/open/floor/plasteel/floorgrime,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"aRr" = (
|
||||
/turf/open/floor/mineral/titanium/blue,
|
||||
/area/shuttle/supply)
|
||||
@@ -48291,7 +48304,7 @@
|
||||
"coL" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/turf/open/floor/plating/airless,
|
||||
/area/quartermaster/storage)
|
||||
/area/quartermaster/warehouse)
|
||||
"coN" = (
|
||||
/turf/open/floor/plasteel/neutral/corner,
|
||||
/area/hallway/secondary/exit/departure_lounge)
|
||||
@@ -51370,6 +51383,76 @@
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/library)
|
||||
"cCX" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"cCY" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"cCZ" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/cable{
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/department/cargo)
|
||||
"cDa" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDb" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDc" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDd" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDe" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDf" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDg" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDh" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDi" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDj" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDk" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDl" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDm" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
"cDn" = (
|
||||
/turf/closed/wall,
|
||||
/area/quartermaster/warehouse)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaa
|
||||
@@ -90793,12 +90876,12 @@ aEd
|
||||
aIj
|
||||
aJm
|
||||
aKg
|
||||
aLg
|
||||
cDa
|
||||
aMo
|
||||
aLg
|
||||
aLg
|
||||
aLg
|
||||
aLg
|
||||
cDd
|
||||
cDf
|
||||
cDg
|
||||
cDh
|
||||
aLg
|
||||
aTj
|
||||
aUu
|
||||
@@ -91826,8 +91909,8 @@ aMs
|
||||
aNO
|
||||
aPb
|
||||
aQe
|
||||
aLg
|
||||
aLg
|
||||
cDi
|
||||
cDj
|
||||
aTn
|
||||
aUx
|
||||
aVA
|
||||
@@ -92084,7 +92167,7 @@ aNP
|
||||
aPb
|
||||
aNO
|
||||
aNP
|
||||
aLg
|
||||
cDk
|
||||
aTo
|
||||
aSk
|
||||
aTm
|
||||
@@ -92341,7 +92424,7 @@ aNO
|
||||
aPc
|
||||
aQf
|
||||
aRq
|
||||
aLg
|
||||
cDl
|
||||
aTp
|
||||
aSk
|
||||
aTm
|
||||
@@ -92598,7 +92681,7 @@ aNQ
|
||||
aNO
|
||||
aQg
|
||||
aNP
|
||||
aLg
|
||||
cDm
|
||||
aTq
|
||||
aSk
|
||||
aVB
|
||||
@@ -92848,14 +92931,14 @@ aEd
|
||||
aEd
|
||||
aEd
|
||||
aEd
|
||||
aKl
|
||||
aLg
|
||||
aLg
|
||||
aLg
|
||||
cCX
|
||||
cDb
|
||||
cDc
|
||||
cDe
|
||||
coL
|
||||
coL
|
||||
coL
|
||||
aLg
|
||||
cDn
|
||||
aTr
|
||||
aUy
|
||||
aPd
|
||||
@@ -93105,7 +93188,7 @@ aGI
|
||||
aHr
|
||||
aEd
|
||||
aJp
|
||||
aKm
|
||||
cCY
|
||||
aLi
|
||||
aMw
|
||||
aEj
|
||||
@@ -93362,7 +93445,7 @@ aGJ
|
||||
aGJ
|
||||
aDl
|
||||
aEk
|
||||
aEk
|
||||
cCZ
|
||||
aLj
|
||||
aMx
|
||||
aEj
|
||||
|
||||
@@ -76,3 +76,8 @@
|
||||
#define AHELP_ACTIVE 1
|
||||
#define AHELP_CLOSED 2
|
||||
#define AHELP_RESOLVED 3
|
||||
|
||||
#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued.
|
||||
|
||||
#define SPAM_TRIGGER_WARNING 5 //Number of identical messages required before the spam-prevention will warn you to stfu
|
||||
#define SPAM_TRIGGER_AUTOMUTE 10 //Number of identical messages required before the spam-prevention will automute you
|
||||
|
||||
@@ -491,3 +491,6 @@ GLOBAL_LIST_INIT(ghost_others_options, list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
|
||||
//Fullscreen overlay resolution in tiles.
|
||||
#define FULLSCREEN_OVERLAY_RESOLUTION_X 15
|
||||
#define FULLSCREEN_OVERLAY_RESOLUTION_Y 15
|
||||
|
||||
#define SUMMON_GUNS "guns"
|
||||
#define SUMMON_MAGIC "magic"
|
||||
|
||||
+18
-1
@@ -185,4 +185,21 @@
|
||||
#define OFFSET_BELT "belt"
|
||||
#define OFFSET_BACK "back"
|
||||
#define OFFSET_SUIT "suit"
|
||||
#define OFFSET_NECK "neck"
|
||||
#define OFFSET_NECK "neck"
|
||||
|
||||
//MINOR TWEAKS/MISC
|
||||
#define AGE_MIN 17 //youngest a character can be
|
||||
#define AGE_MAX 85 //oldest a character can be
|
||||
#define WIZARD_AGE_MIN 30 //youngest a wizard can be
|
||||
#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be
|
||||
#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up
|
||||
#define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets
|
||||
#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you
|
||||
|
||||
#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases
|
||||
#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default.
|
||||
#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism
|
||||
|
||||
// AI Toggles
|
||||
#define AI_CAMERA_LUMINOSITY 5
|
||||
#define AI_VOX // Comment out if you don't want VOX to be enabled and have players download the voice sounds.
|
||||
|
||||
@@ -56,4 +56,10 @@
|
||||
#define LINGHIVE_NONE 0
|
||||
#define LINGHIVE_OUTSIDER 1
|
||||
#define LINGHIVE_LING 2
|
||||
#define LINGHIVE_LINK 3
|
||||
#define LINGHIVE_LINK 3
|
||||
|
||||
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
||||
#define MAX_MESSAGE_LEN 1024
|
||||
#define MAX_NAME_LEN 42
|
||||
#define MAX_BROADCAST_LEN 512
|
||||
#define MAX_CHARTER_LEN 80
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
//Update this whenever the db schema changes
|
||||
//make sure you add an update to the schema_version stable in the db changelog
|
||||
#define DB_MAJOR_VERSION 4
|
||||
#define DB_MINOR_VERSION 0
|
||||
|
||||
//Timing subsystem
|
||||
//Don't run if there is an identical unique timer active
|
||||
|
||||
@@ -377,6 +377,7 @@
|
||||
if(X.get_team() == T)
|
||||
all_antagonists -= X
|
||||
result += " "//newline between teams
|
||||
CHECK_TICK
|
||||
|
||||
var/currrent_category
|
||||
var/datum/antagonist/previous_category
|
||||
@@ -396,6 +397,7 @@
|
||||
previous_category = A
|
||||
result += A.roundend_report()
|
||||
result += "<br><br>"
|
||||
CHECK_TICK
|
||||
|
||||
if(all_antagonists.len)
|
||||
var/datum/antagonist/last = all_antagonists[all_antagonists.len]
|
||||
|
||||
@@ -1500,7 +1500,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
var/datum/thing = input
|
||||
if(thing.use_tag)
|
||||
if(!thing.tag)
|
||||
WARNING("A ref was requested of an object with use_tag set but no tag: [thing]")
|
||||
stack_trace("A ref was requested of an object with use_tag set but no tag: [thing]")
|
||||
thing.use_tag = FALSE
|
||||
else
|
||||
return "\[[url_encode(thing.tag)]\]"
|
||||
|
||||
+12
-51
@@ -19,53 +19,6 @@
|
||||
2 for preloading absolutely everything;
|
||||
*/
|
||||
|
||||
//ADMIN STUFF
|
||||
#define ROUNDSTART_LOGOUT_REPORT_TIME 6000 //Amount of time (in deciseconds) after the rounds starts, that the player disconnect report is issued.
|
||||
|
||||
#define SPAM_TRIGGER_WARNING 5 //Number of identical messages required before the spam-prevention will warn you to stfu
|
||||
#define SPAM_TRIGGER_AUTOMUTE 10 //Number of identical messages required before the spam-prevention will automute you
|
||||
|
||||
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
|
||||
#define MAX_MESSAGE_LEN 1024
|
||||
#define MAX_NAME_LEN 42
|
||||
#define MAX_BROADCAST_LEN 512
|
||||
#define MAX_CHARTER_LEN 80
|
||||
|
||||
//MINOR TWEAKS/MISC
|
||||
#define AGE_MIN 17 //youngest a character can be
|
||||
#define AGE_MAX 85 //oldest a character can be
|
||||
#define WIZARD_AGE_MIN 30 //youngest a wizard can be
|
||||
#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be
|
||||
#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up
|
||||
#define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets
|
||||
#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you
|
||||
|
||||
#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases
|
||||
#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default.
|
||||
#define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism
|
||||
|
||||
#define MAX_STACK_AMOUNT_METAL 50
|
||||
#define MAX_STACK_AMOUNT_GLASS 50
|
||||
#define MAX_STACK_AMOUNT_RODS 60
|
||||
|
||||
// AI Toggles
|
||||
#define AI_CAMERA_LUMINOSITY 5
|
||||
#define AI_VOX 1 // Comment out if you don't want VOX to be enabled and have players download the voice sounds.
|
||||
|
||||
//Additional code for the above flags.
|
||||
#ifdef TESTING
|
||||
#warn compiling in TESTING mode. testing() debug messages will be visible.
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GC_FAILURE_HARD_LOOKUP
|
||||
#define FIND_REF_NO_CHECK_TICK
|
||||
#endif
|
||||
|
||||
#ifdef TRAVISTESTING
|
||||
#define TESTING
|
||||
#endif
|
||||
|
||||
//Update this whenever you need to take advantage of more recent byond features
|
||||
#define MIN_COMPILER_VERSION 511
|
||||
#if DM_VERSION < MIN_COMPILER_VERSION
|
||||
@@ -74,7 +27,15 @@
|
||||
#error You need version 511 or higher
|
||||
#endif
|
||||
|
||||
//Update this whenever the db schema changes
|
||||
//make sure you add an update to the schema_version stable in the db changelog
|
||||
#define DB_MAJOR_VERSION 4
|
||||
#define DB_MINOR_VERSION 0
|
||||
//Additional code for the above flags.
|
||||
#ifdef TESTING
|
||||
#warn compiling in TESTING mode. testing() debug messages will be visible.
|
||||
#endif
|
||||
|
||||
#ifdef GC_FAILURE_HARD_LOOKUP
|
||||
#define FIND_REF_NO_CHECK_TICK
|
||||
#endif
|
||||
|
||||
#ifdef TRAVISTESTING
|
||||
#define TESTING
|
||||
#endif
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
cultist.special_role = "Cultist"
|
||||
cultist.restricted_roles = restricted_jobs
|
||||
log_game("[cultist.key] (ckey) has been selected as a cultist")
|
||||
|
||||
|
||||
return (cultists_to_cult.len>=required_enemies)
|
||||
|
||||
@@ -87,6 +88,10 @@
|
||||
/datum/game_mode/cult/post_setup()
|
||||
for(var/datum/mind/cult_mind in cultists_to_cult)
|
||||
add_cultist(cult_mind, 0, equip=TRUE)
|
||||
if(!main_cult)
|
||||
var/datum/antagonist/cult/C = cult_mind.has_antag_datum(/datum/antagonist/cult,TRUE)
|
||||
if(C && C.cult_team)
|
||||
main_cult = C.cult_team
|
||||
..()
|
||||
|
||||
|
||||
|
||||
@@ -123,6 +123,7 @@
|
||||
to_chat(user, "<span class='cultlarge'>\"I wouldn't advise that.\"</span>")
|
||||
to_chat(user, "<span class='warning'>An overwhelming sense of nausea overpowers you!</span>")
|
||||
user.Dizzy(80)
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.Knockdown(30)
|
||||
return
|
||||
else
|
||||
@@ -130,6 +131,7 @@
|
||||
to_chat(user, "<span class='userdanger'>A horrible force yanks at your arm!</span>")
|
||||
user.emote("scream")
|
||||
user.apply_damage(30, BRUTE, pick("l_arm", "r_arm"))
|
||||
user.dropItemToGround(src, TRUE)
|
||||
user.Knockdown(50)
|
||||
return
|
||||
jaunt.Grant(user, src)
|
||||
|
||||
@@ -121,11 +121,20 @@
|
||||
force = 15
|
||||
hitsound = 'sound/items/welder2.ogg'
|
||||
|
||||
var/xray_granted = FALSE
|
||||
|
||||
/obj/item/scrying/equipped(mob/user)
|
||||
if(!xray_granted && ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(!(H.dna.check_mutation(XRAY)))
|
||||
H.dna.add_mutation(XRAY)
|
||||
xray_granted = TRUE
|
||||
. = ..()
|
||||
|
||||
/obj/item/scrying/attack_self(mob/user)
|
||||
to_chat(user, "<span class='notice'>You can see...everything!</span>")
|
||||
visible_message("<span class='danger'>[user] stares into [src], their eyes glazing over.</span>")
|
||||
user.ghostize(1)
|
||||
return
|
||||
|
||||
/////////////////////////////////////////Necromantic Stone///////////////////
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
aspell.name = "Instant [aspell.name]"
|
||||
if(aspell.spell_level >= aspell.level_max)
|
||||
to_chat(user, "<span class='notice'>This spell cannot be strengthened any further.</span>")
|
||||
SSblackbox.record_feedback("nested tally", "wizard_spell_improved", 1, list("[name]", "[aspell.level]"))
|
||||
SSblackbox.record_feedback("nested tally", "wizard_spell_improved", 1, list("[name]", "[aspell.spell_level]"))
|
||||
return 1
|
||||
//No same spell found - just learn it
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
@@ -318,12 +318,6 @@
|
||||
item_path = /obj/item/scrying
|
||||
category = "Defensive"
|
||||
|
||||
/datum/spellbook_entry/item/scryingorb/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
if(..())
|
||||
if (!(user.dna.check_mutation(XRAY)))
|
||||
user.dna.add_mutation(XRAY)
|
||||
return 1
|
||||
|
||||
/datum/spellbook_entry/item/soulstones
|
||||
name = "Six Soul Stone Shards and the spell Artificer"
|
||||
desc = "Soul Stone Shards are ancient tools capable of capturing and harnessing the spirits of the dead and dying. The spell Artificer allows you to create arcane machines for the captured souls to pilot."
|
||||
@@ -482,7 +476,7 @@
|
||||
|
||||
/datum/spellbook_entry/summon/guns/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
rightandwrong(0, user, 25)
|
||||
rightandwrong(SUMMON_GUNS, user, 25)
|
||||
active = 1
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You have cast summon guns!</span>")
|
||||
@@ -499,7 +493,7 @@
|
||||
|
||||
/datum/spellbook_entry/summon/magic/Buy(mob/living/carbon/human/user,obj/item/spellbook/book)
|
||||
SSblackbox.record_feedback("tally", "wizard_spell_learned", 1, name)
|
||||
rightandwrong(1, user, 25)
|
||||
rightandwrong(SUMMON_MAGIC, user, 25)
|
||||
active = 1
|
||||
playsound(get_turf(user), 'sound/magic/castsummon.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You have cast summon magic!</span>")
|
||||
|
||||
@@ -188,21 +188,33 @@
|
||||
build_path = /obj/machinery/computer/cargo
|
||||
var/contraband = FALSE
|
||||
|
||||
/obj/item/circuitboard/computer/cargo/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/device/multitool))
|
||||
if(!emagged)
|
||||
contraband = !contraband
|
||||
to_chat(user, "<span class='notice'>Receiver spectrum set to [contraband ? "Broad" : "Standard"].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The spectrum chip is unresponsive.</span>")
|
||||
else if(istype(I, /obj/item/card/emag))
|
||||
if(!emagged)
|
||||
contraband = TRUE
|
||||
emagged = TRUE
|
||||
to_chat(user, "<span class='notice'>You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.</span>")
|
||||
/obj/item/circuitboard/computer/cargo/multitool_act(mob/living/user)
|
||||
if(!emagged)
|
||||
contraband = !contraband
|
||||
to_chat(user, "<span class='notice'>Receiver spectrum set to [contraband ? "Broad" : "Standard"].</span>")
|
||||
else
|
||||
return ..()
|
||||
to_chat(user, "<span class='notice'>The spectrum chip is unresponsive.</span>")
|
||||
|
||||
/obj/item/circuitboard/computer/cargo/emag_act(mob/living/user)
|
||||
if(!emagged)
|
||||
contraband = TRUE
|
||||
emagged = TRUE
|
||||
to_chat(user, "<span class='notice'>You adjust [src]'s routing and receiver spectrum, unlocking special supplies and contraband.</span>")
|
||||
|
||||
/obj/item/circuitboard/computer/cargo/express
|
||||
name = "Express Supply Console (Computer Board)"
|
||||
build_path = /obj/machinery/computer/cargo/express
|
||||
|
||||
/obj/item/circuitboard/computer/cargo/express/multitool_act(mob/living/user)
|
||||
if (!emagged)
|
||||
to_chat(user, "<span class='notice'>Routing protocols are already set to: \"factory defaults\".</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You reset the routing protocols to: \"factory defaults\".</span>")
|
||||
emagged = FALSE
|
||||
|
||||
/obj/item/circuitboard/computer/cargo/express/emag_act(mob/living/user)
|
||||
to_chat(user, "<span class='notice'>You change the routing protocols, allowing the Drop Pod to land anywhere on the station.</span>")
|
||||
emagged = TRUE
|
||||
|
||||
/obj/item/circuitboard/computer/cargo/request
|
||||
name = "Supply Request Console (Computer Board)"
|
||||
|
||||
@@ -273,6 +273,9 @@
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "defibpaddles"
|
||||
item_state = "defibpaddles"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
|
||||
force = 0
|
||||
throwforce = 6
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
@@ -311,6 +314,9 @@
|
||||
item_state = "defibpaddles[wielded]"
|
||||
if(cooldown)
|
||||
icon_state = "defibpaddles[wielded]_cooldown"
|
||||
if(iscarbon(loc))
|
||||
var/mob/living/carbon/C = loc
|
||||
C.update_inv_hands()
|
||||
|
||||
/obj/item/twohanded/shockpaddles/suicide_act(mob/user)
|
||||
user.visible_message("<span class='danger'>[user] is putting the live paddles on [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
@@ -583,8 +589,6 @@
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "defibpaddles0"
|
||||
item_state = "defibpaddles0"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
req_defib = FALSE
|
||||
|
||||
/obj/item/twohanded/shockpaddles/cyborg/attack(mob/M, mob/user)
|
||||
@@ -606,8 +610,6 @@
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "defibpaddles0"
|
||||
item_state = "defibpaddles0"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
||||
req_defib = FALSE
|
||||
|
||||
#undef HALFWAYCRITDEATH
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
force = 5
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
tool_behaviour = TOOL_MULTITOOL
|
||||
throwforce = 0
|
||||
throw_range = 7
|
||||
throw_speed = 3
|
||||
|
||||
@@ -229,6 +229,9 @@
|
||||
hitsound = 'sound/weapons/rapierhit.ogg'
|
||||
var/possessed = FALSE
|
||||
|
||||
/obj/item/nullrod/scythe/talking/relaymove(mob/user)
|
||||
return //stops buckled message spam for the ghost.
|
||||
|
||||
/obj/item/nullrod/scythe/talking/attack_self(mob/living/user)
|
||||
if(possessed)
|
||||
return
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
/obj/item/shield/energy
|
||||
name = "energy combat shield"
|
||||
desc = "A shield capable of stopping most melee attacks. Protects user from almost all energy projectiles. It can be retracted, expanded, and stored anywhere."
|
||||
desc = "A shield that reflects almost all energy projectiles, but is useless against physical attacks. It can be retracted, expanded, and stored anywhere."
|
||||
icon = 'icons/obj/items_and_weapons.dmi'
|
||||
icon_state = "eshield0" // eshield1 for expanded
|
||||
lefthand_file = 'icons/mob/inhands/equipment/shields_lefthand.dmi'
|
||||
|
||||
@@ -156,23 +156,23 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible",
|
||||
var/unholy2clean = A.reagents.get_reagent_amount("unholywater")
|
||||
A.reagents.del_reagent("unholywater")
|
||||
A.reagents.add_reagent("holywater",unholy2clean)
|
||||
if(istype(A, /obj/item/twohanded/required/cult_bastard))
|
||||
var/obj/item/twohanded/required/cult_bastard/sword = A
|
||||
to_chat(user, "<span class='notice'>You begin to exorcise [sword].</span>")
|
||||
playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1)
|
||||
if(do_after(user, 40, target = sword))
|
||||
playsound(src,'sound/effects/pray_chaplain.ogg',60,1)
|
||||
for(var/obj/item/device/soulstone/SS in sword.contents)
|
||||
SS.usability = TRUE
|
||||
for(var/mob/living/simple_animal/shade/EX in SS)
|
||||
SSticker.mode.remove_cultist(EX.mind, 1, 0)
|
||||
EX.icon_state = "ghost1"
|
||||
EX.name = "Purified [EX.name]"
|
||||
SS.release_shades(user)
|
||||
qdel(SS)
|
||||
new /obj/item/nullrod/claymore(get_turf(sword))
|
||||
user.visible_message("<span class='notice'>[user] has purified the [sword]!!</span>")
|
||||
qdel(sword)
|
||||
if(istype(A, /obj/item/twohanded/required/cult_bastard))
|
||||
var/obj/item/twohanded/required/cult_bastard/sword = A
|
||||
to_chat(user, "<span class='notice'>You begin to exorcise [sword].</span>")
|
||||
playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1)
|
||||
if(do_after(user, 40, target = sword))
|
||||
playsound(src,'sound/effects/pray_chaplain.ogg',60,1)
|
||||
for(var/obj/item/device/soulstone/SS in sword.contents)
|
||||
SS.usability = TRUE
|
||||
for(var/mob/living/simple_animal/shade/EX in SS)
|
||||
SSticker.mode.remove_cultist(EX.mind, 1, 0)
|
||||
EX.icon_state = "ghost1"
|
||||
EX.name = "Purified [EX.name]"
|
||||
SS.release_shades(user)
|
||||
qdel(SS)
|
||||
new /obj/item/nullrod/claymore(get_turf(sword))
|
||||
user.visible_message("<span class='notice'>[user] has purified the [sword]!!</span>")
|
||||
qdel(sword)
|
||||
|
||||
|
||||
/obj/item/storage/book/bible/booze
|
||||
|
||||
@@ -661,7 +661,8 @@
|
||||
user.visible_message("<span class='danger'>[user] blasts \the [target] with \the [src]!</span>")
|
||||
playsound(target, 'sound/magic/disintegrate.ogg', 100, 1)
|
||||
W.break_wall()
|
||||
return 1
|
||||
W.ScrapeAway()
|
||||
return
|
||||
..()
|
||||
|
||||
//HF blade
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
if(opened || !can_open(user))
|
||||
return
|
||||
playsound(loc, open_sound, 15, 1, -3)
|
||||
opened = 1
|
||||
opened = TRUE
|
||||
if(!dense_when_open)
|
||||
density = FALSE
|
||||
climb_time *= 0.5 //it's faster to climb onto an open thing
|
||||
@@ -185,7 +185,7 @@
|
||||
take_contents()
|
||||
playsound(loc, close_sound, 15, 1, -3)
|
||||
climb_time = initial(climb_time)
|
||||
opened = 0
|
||||
opened = FALSE
|
||||
density = TRUE
|
||||
update_icon()
|
||||
return 1
|
||||
@@ -208,6 +208,10 @@
|
||||
/obj/structure/closet/attackby(obj/item/W, mob/user, params)
|
||||
if(user in src)
|
||||
return
|
||||
if(!src.tool_interact(W,user))
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/proc/tool_interact(obj/item/W, mob/user)//returns TRUE if attackBy call shouldnt be continued (because tool was used/closet was of wrong type), FALSE if otherwise
|
||||
if(opened)
|
||||
if(istype(W, cutting_tool))
|
||||
if(istype(W, /obj/item/weldingtool))
|
||||
@@ -217,29 +221,29 @@
|
||||
playsound(loc, cutting_sound, 40, 1)
|
||||
if(do_after(user, 40*WT.toolspeed, 1, target = src))
|
||||
if(!opened || !WT.isOn())
|
||||
return
|
||||
return TRUE
|
||||
playsound(loc, cutting_sound, 50, 1)
|
||||
user.visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [WT].</span>",
|
||||
"<span class='italics'>You hear welding.</span>")
|
||||
deconstruct(TRUE)
|
||||
return 0
|
||||
return TRUE
|
||||
else // for example cardboard box is cut with wirecutters
|
||||
user.visible_message("<span class='notice'>[user] cut apart \the [src].</span>", \
|
||||
"<span class='notice'>You cut \the [src] apart with \the [W].</span>")
|
||||
deconstruct(TRUE)
|
||||
return 0
|
||||
return TRUE
|
||||
if(user.transferItemToLoc(W, drop_location())) // so we put in unlit welder too
|
||||
return 1
|
||||
return TRUE
|
||||
else if(istype(W, /obj/item/weldingtool) && can_weld_shut)
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(!WT.remove_fuel(0, user))
|
||||
return
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>You begin [welded ? "unwelding":"welding"] \the [src]...</span>")
|
||||
playsound(loc, 'sound/items/welder2.ogg', 40, 1)
|
||||
if(do_after(user, 40*WT.toolspeed, 1, target = src))
|
||||
if(opened || !WT.isOn())
|
||||
return
|
||||
return TRUE
|
||||
playsound(loc, WT.usesound, 50, 1)
|
||||
welded = !welded
|
||||
user.visible_message("<span class='notice'>[user] [welded ? "welds shut" : "unweldeds"] \the [src].</span>",
|
||||
@@ -248,7 +252,7 @@
|
||||
update_icon()
|
||||
else if(istype(W, /obj/item/wrench) && anchorable)
|
||||
if(isinspace() && !anchored)
|
||||
return
|
||||
return TRUE
|
||||
anchored = !anchored
|
||||
playsound(src.loc, W.usesound, 75, 1)
|
||||
user.visible_message("<span class='notice'>[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.</span>", \
|
||||
@@ -257,9 +261,9 @@
|
||||
else if(user.a_intent != INTENT_HARM && !(W.flags_1 & NOBLUDGEON_1))
|
||||
if(W.GetID() || !toggle(user))
|
||||
togglelock(user)
|
||||
return 1
|
||||
return TRUE
|
||||
else
|
||||
return ..()
|
||||
return FALSE
|
||||
|
||||
/obj/structure/closet/MouseDrop_T(atom/movable/O, mob/living/user)
|
||||
if(!istype(O) || O.anchored || istype(O, /obj/screen))
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
//The "BDPtarget" temp visual is created by the expressconsole, which in turn makes two things: a falling droppod animation, and the droppod itself.
|
||||
|
||||
|
||||
//------------------------------------BLUESPACE DROP POD-------------------------------------//
|
||||
/obj/structure/closet/bsdroppod
|
||||
name = "Bluespace Drop Pod"
|
||||
desc = "A Nanotrasen supply drop pod."
|
||||
icon = 'icons/obj/2x2.dmi'
|
||||
icon_state = "BDP"
|
||||
pixel_x = -16//2x2 sprite
|
||||
pixel_y = -5
|
||||
layer = TABLE_LAYER//so that the crate inside doesn't appear underneath
|
||||
allow_objects = TRUE
|
||||
allow_dense = TRUE
|
||||
delivery_icon = null
|
||||
can_weld_shut = FALSE
|
||||
armor = list("melee" = 30, "bullet" = 50, "laser" = 50, "energy" = 100, "bomb" = 90, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80)
|
||||
anchored = TRUE
|
||||
anchorable = FALSE
|
||||
var/datum/supply_order/SupplyOrder
|
||||
|
||||
/obj/structure/closet/bsdroppod/Initialize(mapload, datum/supply_order/so)
|
||||
. = ..()
|
||||
SupplyOrder = so//uses Supply Order passed from expressconsole into BDPtarget
|
||||
addtimer(CALLBACK(src, .proc/open), 30)//open 3seconds after appearing
|
||||
|
||||
/obj/structure/closet/bsdroppod/update_icon()
|
||||
cut_overlays()
|
||||
if (opened)
|
||||
add_overlay("BDP_open")
|
||||
else
|
||||
add_overlay("BDP_door")
|
||||
|
||||
/obj/structure/closet/bsdroppod/tool_interact(obj/item/W, mob/user)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/closet/bsdroppod/toggle(mob/living/user)
|
||||
return
|
||||
|
||||
/obj/structure/closet/bsdroppod/open()
|
||||
var/turf/T = get_turf(src)
|
||||
opened = TRUE
|
||||
SupplyOrder.generate(T)//not called during populateContents as supplyorder generation requires a turf
|
||||
update_icon()
|
||||
playsound(src, open_sound, 15, 1, -3)
|
||||
addtimer(CALLBACK(src, .proc/sparks), 30)//3 seconds after opening, make some sparks and delete
|
||||
|
||||
/obj/structure/closet/bsdroppod/proc/sparks()//sparks cant be called from addtimer
|
||||
do_sparks(5, TRUE, src)
|
||||
qdel(src)//no need for QDEL_IN if we already have a timer
|
||||
|
||||
/obj/structure/closet/bsdroppod/Destroy()//make some sparks b4 deletion
|
||||
QDEL_NULL(SupplyOrder)
|
||||
return ..()
|
||||
|
||||
//------------------------------------FALLING BLUESPACE DROP POD-------------------------------------//
|
||||
/obj/effect/temp_visual/BDPfall
|
||||
icon = 'icons/obj/2x2.dmi'
|
||||
icon_state = "BDP_falling"
|
||||
pixel_x = -16
|
||||
pixel_y = -5
|
||||
pixel_z = 200
|
||||
name = "Bluespace Drop Pod"
|
||||
desc = "Get out of the way!"
|
||||
layer = FLY_LAYER//that wasnt flying, that was falling with style!
|
||||
randomdir = FALSE
|
||||
|
||||
//------------------------------------TEMPORARY_VISUAL-------------------------------------//
|
||||
/obj/effect/BDPtarget
|
||||
icon = 'icons/mob/actions/actions_items.dmi'
|
||||
icon_state = "sniper_zoom"
|
||||
layer = PROJECTILE_HIT_THRESHHOLD_LAYER
|
||||
light_range = 2
|
||||
var/obj/effect/temp_visual/fallingPod
|
||||
|
||||
/obj/effect/BDPtarget/Initialize(mapload, datum/supply_order/SO)
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, .proc/beginLaunch, SO), 30)//wait 3 seconds
|
||||
|
||||
/obj/effect/BDPtarget/proc/beginLaunch(datum/supply_order/SO)
|
||||
fallingPod = new /obj/effect/temp_visual/BDPfall(drop_location())
|
||||
animate(fallingPod, pixel_z = 0, time = 3, easing = LINEAR_EASING)//make and animate a falling pod
|
||||
addtimer(CALLBACK(src, .proc/endLaunch, SO), 3, TIMER_CLIENT_TIME)//fall 0.3seconds
|
||||
|
||||
/obj/effect/BDPtarget/proc/endLaunch(datum/supply_order/SO)
|
||||
new /obj/structure/closet/bsdroppod(drop_location(), SO)//pod is created
|
||||
explosion(src,0,0,2, flame_range = 2) //explosion and camshake (shoutout to @cyberboss)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/BDPtarget/Destroy()
|
||||
QDEL_NULL(fallingPod)//delete falling pod after animation's over
|
||||
return ..()
|
||||
@@ -463,7 +463,7 @@
|
||||
if("All Antags!")
|
||||
survivor_probability = 100
|
||||
|
||||
rightandwrong(0, usr, survivor_probability)
|
||||
rightandwrong(SUMMON_GUNS, usr, survivor_probability)
|
||||
|
||||
if("magic")
|
||||
if(!check_rights(R_FUN))
|
||||
@@ -476,7 +476,7 @@
|
||||
if("All Antags!")
|
||||
survivor_probability = 100
|
||||
|
||||
rightandwrong(1, usr, survivor_probability)
|
||||
rightandwrong(SUMMON_MAGIC, usr, survivor_probability)
|
||||
|
||||
if("events")
|
||||
if(!check_rights(R_FUN))
|
||||
|
||||
@@ -31,7 +31,7 @@ GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "config/away
|
||||
return ..()
|
||||
|
||||
/proc/generateMapList(filename)
|
||||
var/list/potentialMaps = list()
|
||||
. = list()
|
||||
var/list/Lines = world.file2list(filename)
|
||||
|
||||
if(!Lines.len)
|
||||
@@ -58,6 +58,4 @@ GLOBAL_LIST_INIT(potentialRandomZlevels, generateMapList(filename = "config/away
|
||||
if (!name)
|
||||
continue
|
||||
|
||||
potentialMaps.Add(t)
|
||||
|
||||
return potentialMaps
|
||||
. += t
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
"name" = P.group,
|
||||
"packs" = list()
|
||||
)
|
||||
if((P.hidden && !emagged) || (P.contraband && !contraband) || (P.special && !P.special_enabled))
|
||||
if((P.hidden && !emagged) || (P.contraband && !contraband) || (P.special && !P.special_enabled) || P.DropPodOnly)
|
||||
continue
|
||||
data["supplies"][P.group]["packs"] += list(list(
|
||||
"name" = P.name,
|
||||
@@ -140,7 +140,7 @@
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[id]
|
||||
if(!istype(pack))
|
||||
return
|
||||
if((pack.hidden && !emagged) || (pack.contraband && !contraband))
|
||||
if((pack.hidden && !emagged) || (pack.contraband && !contraband) || pack.DropPodOnly)
|
||||
return
|
||||
|
||||
var/name = "*None Provided*"
|
||||
|
||||
@@ -0,0 +1,125 @@
|
||||
/obj/machinery/computer/cargo/express
|
||||
name = "express supply console"
|
||||
desc = "This console allows the user to purchase a package for double the price,\
|
||||
with 1/40th of the delivery time: made possible by NanoTrasen's new \"Drop Pod Railgun\".\
|
||||
All sales are near instantaneous - please choose carefully"
|
||||
icon_screen = "supply_express"
|
||||
circuit = /obj/item/circuitboard/computer/cargo/express
|
||||
blockade_warning = "Bluespace instability detected. Delivery impossible."
|
||||
req_access = list(ACCESS_QM)
|
||||
var/message
|
||||
var/locked = TRUE
|
||||
|
||||
|
||||
/obj/machinery/computer/cargo/express/attackby(obj/item/W, mob/living/user, params)
|
||||
..()
|
||||
if((istype(W, /obj/item/card/id) || istype(W, /obj/item/device/pda)) && allowed(user))
|
||||
locked = !locked
|
||||
to_chat(user, "<span class='notice'>You [locked ? "lock" : "unlock"] the interface.</span>")
|
||||
|
||||
/obj/machinery/computer/cargo/express/emag_act(mob/living/user)
|
||||
if(emagged)
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] swipes a suspicious card through [src]!</span>",
|
||||
"<span class='notice'>You change the routing protocols, allowing the Drop Pod to land anywhere on the station.</span>")
|
||||
emagged = TRUE
|
||||
// This also sets this on the circuit board
|
||||
var/obj/item/circuitboard/computer/cargo/board = circuit
|
||||
board.emagged = TRUE
|
||||
|
||||
/obj/machinery/computer/cargo/express/ui_interact(mob/living/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) // Remember to use the appropriate state.
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "cargo_express", name, 1000, 800, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
|
||||
/obj/machinery/computer/cargo/express/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["locked"] = locked
|
||||
data["siliconUser"] = user.has_unlimited_silicon_privilege
|
||||
data["points"] = SSshuttle.points
|
||||
data["supplies"] = list()
|
||||
message = "For normally priced items, please use the standard Supply or Request Console. \
|
||||
Sales are near-instantaneous - please choose carefully."
|
||||
if(SSshuttle.supplyBlocked)
|
||||
message = blockade_warning
|
||||
if(emagged)
|
||||
message = "(&!#@ERROR: ROUTING_#PROTOCOL MALF(*CT#ON. $UG%ESTE@ ACT#0N: !^/PULS3-%E)ET CIR*)ITB%ARD."
|
||||
|
||||
data["message"] = message
|
||||
|
||||
if (emagged)
|
||||
for(var/pack in SSshuttle.supply_packs)
|
||||
var/datum/supply_pack/P = SSshuttle.supply_packs[pack]
|
||||
if (P.name == "Toy Crate")//Can only order toys if emagged. You gotta spend 10K points to crash a droppod somewhere on the station
|
||||
data["supplies"][P.group] = list(
|
||||
"name" = P.group,
|
||||
"packs" = list()
|
||||
)
|
||||
data["supplies"][P.group]["packs"] += list(list(
|
||||
"name" = P.name,
|
||||
"cost" = P.cost * 2, //displays twice the normal cost
|
||||
"id" = pack
|
||||
))
|
||||
else
|
||||
for(var/pack in SSshuttle.supply_packs)
|
||||
var/datum/supply_pack/P = SSshuttle.supply_packs[pack]
|
||||
if(!data["supplies"][P.group])
|
||||
data["supplies"][P.group] = list(
|
||||
"name" = P.group,
|
||||
"packs" = list()
|
||||
)
|
||||
if((P.hidden) || (P.contraband) || (P.special))//no fun allowed
|
||||
continue
|
||||
data["supplies"][P.group]["packs"] += list(list(
|
||||
"name" = P.name,
|
||||
"cost" = P.cost * 2, //displays twice the normal cost
|
||||
"id" = pack
|
||||
))
|
||||
|
||||
return data
|
||||
|
||||
/obj/machinery/computer/cargo/express/ui_act(action, params, datum/tgui/ui)
|
||||
switch(action)
|
||||
if("add")//Generate Supply Order first
|
||||
var/id = text2path(params["id"])
|
||||
var/datum/supply_pack/pack = SSshuttle.supply_packs[id]
|
||||
if(!istype(pack))
|
||||
return
|
||||
var/name = "*None Provided*"
|
||||
var/rank = "*None Provided*"
|
||||
var/ckey = usr.ckey
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/H = usr
|
||||
name = H.get_authentification_name()
|
||||
rank = H.get_assignment()
|
||||
else if(issilicon(usr))
|
||||
name = usr.real_name
|
||||
rank = "Silicon"
|
||||
var/reason = ""
|
||||
|
||||
|
||||
var/datum/supply_order/SO = new(pack, name, rank, ckey, reason)
|
||||
if(SO.pack.cost* 2 <= SSshuttle.points) //If you can afford it, then begin the delivery
|
||||
SO.generateRequisition(get_turf(src))
|
||||
SSshuttle.points -= SO.pack.cost * 2//twice the normal cost
|
||||
|
||||
var/list/empty_turfs = list()
|
||||
var/area/landingzone
|
||||
|
||||
if (!emagged)
|
||||
landingzone = locate(/area/quartermaster/storage) in GLOB.sortedAreas
|
||||
else
|
||||
landingzone = locate(pick(GLOB.the_station_areas)) in GLOB.sortedAreas
|
||||
|
||||
for(var/turf/open/floor/T in landingzone.contents) //get all the turfs in cargo bay
|
||||
if(is_blocked_turf(T))//wont land on a blocked turf
|
||||
continue
|
||||
empty_turfs.Add(T)
|
||||
|
||||
if (empty_turfs.len != 0 )
|
||||
var/LZ = empty_turfs[rand(empty_turfs.len-1)]//pick a random turf
|
||||
new /obj/effect/BDPtarget(LZ, SO)//where the magic happens. this temp visual makes the actual droppod after a pause
|
||||
. = TRUE
|
||||
update_icon()
|
||||
+1781
-1780
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@
|
||||
..()
|
||||
|
||||
/datum/round_event/wizard/summonguns/start()
|
||||
rightandwrong(0,,10)
|
||||
rightandwrong(SUMMON_GUNS, null, 10)
|
||||
|
||||
/datum/round_event_control/wizard/summonmagic //The Somewhat Less Classic
|
||||
name = "Summon Magic"
|
||||
@@ -26,4 +26,4 @@
|
||||
..()
|
||||
|
||||
/datum/round_event/wizard/summonmagic/start()
|
||||
rightandwrong(1,,10)
|
||||
rightandwrong(SUMMON_MAGIC, null, 10)
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
component_parts = null
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/on_deconstruction()
|
||||
new /obj/item/stack/sheet/mineral/wood(loc, 10)
|
||||
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
|
||||
..()
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/RefreshParts()
|
||||
@@ -297,7 +297,7 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/proc/rack_dry()
|
||||
for(var/obj/item/reagent_containers/food/snacks/S in contents)
|
||||
for(var/obj/item/reagent_containers/food/snacks/S in src)
|
||||
if(S.dried_type == S.type)//if the dried type is the same as the object's type, don't bother creating a whole new item...
|
||||
S.add_atom_colour("#ad7257", FIXED_COLOUR_PRIORITY)
|
||||
S.dry = TRUE
|
||||
@@ -307,8 +307,8 @@
|
||||
new dried(drop_location())
|
||||
qdel(S)
|
||||
return TRUE
|
||||
for(var/obj/item/stack/sheet/wetleather/WL in contents)
|
||||
var/obj/item/stack/sheet/leather/L = new(loc)
|
||||
for(var/obj/item/stack/sheet/wetleather/WL in src)
|
||||
var/obj/item/stack/sheet/leather/L = new(drop_location())
|
||||
L.amount = WL.amount
|
||||
qdel(WL)
|
||||
return TRUE
|
||||
|
||||
@@ -266,13 +266,13 @@
|
||||
|
||||
/datum/plant_gene/trait/glow/shadow
|
||||
//makes plant emit slightly purple shadows
|
||||
//adds -potency*(rate*0.05) light power to products
|
||||
//adds -potency*(rate*0.2) light power to products
|
||||
name = "Shadow Emission"
|
||||
rate = 0.04
|
||||
glow_color = "#AAD84B"
|
||||
|
||||
/datum/plant_gene/trait/glow/shadow/glow_power(obj/item/seeds/S)
|
||||
return -max(S.potency*(rate*0.05), 0.075)
|
||||
return -max(S.potency*(rate*0.2), 0.2)
|
||||
|
||||
/datum/plant_gene/trait/glow/red
|
||||
name = "Red Electrical Glow"
|
||||
|
||||
@@ -357,6 +357,11 @@
|
||||
to_chat(humanc, "<span class='userdanger'><i>THERE CAN BE ONLY ONE!!!</i></span>")
|
||||
humanc.make_scottish()
|
||||
|
||||
if(GLOB.summon_guns_triggered)
|
||||
give_guns(humanc)
|
||||
if(GLOB.summon_magic_triggered)
|
||||
give_magic(humanc)
|
||||
|
||||
GLOB.joined_player_list += character.ckey
|
||||
|
||||
if(CONFIG_GET(flag/allow_latejoin_antagonists) && humanc) //Borgs aren't allowed to be antags. Will need to be tweaked if we get true latejoin ais.
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The MMI indicates the brain is active.</span>")
|
||||
|
||||
/obj/item/device/mmi/relaymove()
|
||||
/obj/item/device/mmi/relaymove(mob/user)
|
||||
return //so that the MMI won't get a warning about not being able to move if it tries to move
|
||||
|
||||
/obj/item/device/mmi/syndie
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/mob/living/carbon/alien/spawn_gibs(with_bodyparts)
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/xeno(get_turf(src))
|
||||
new /obj/effect/gibspawner/xeno(drop_location())
|
||||
else
|
||||
new /obj/effect/gibspawner/xenobodypartless(get_turf(src))
|
||||
new /obj/effect/gibspawner/xenobodypartless(drop_location())
|
||||
|
||||
/mob/living/carbon/alien/gib_animation()
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-a")
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
/mob/living/carbon/alien/larva/spawn_gibs(with_bodyparts)
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/larva(get_turf(src))
|
||||
new /obj/effect/gibspawner/larva(drop_location())
|
||||
else
|
||||
new /obj/effect/gibspawner/larvabodypartless(get_turf(src))
|
||||
new /obj/effect/gibspawner/larvabodypartless(drop_location())
|
||||
|
||||
/mob/living/carbon/alien/larva/gib_animation()
|
||||
new /obj/effect/temp_visual/gib_animation(loc, "gibbed-l")
|
||||
|
||||
@@ -13,14 +13,16 @@
|
||||
SSticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now
|
||||
|
||||
/mob/living/carbon/gib(no_brain, no_organs, no_bodyparts)
|
||||
var/atom/Tsec = drop_location()
|
||||
for(var/mob/M in src)
|
||||
if(M in stomach_contents)
|
||||
stomach_contents.Remove(M)
|
||||
M.forceMove(loc)
|
||||
M.forceMove(Tsec)
|
||||
visible_message("<span class='danger'>[M] bursts out of [src]!</span>")
|
||||
..()
|
||||
|
||||
/mob/living/carbon/spill_organs(no_brain, no_organs, no_bodyparts)
|
||||
var/atom/Tsec = drop_location()
|
||||
if(!no_bodyparts)
|
||||
if(no_organs)//so the organs don't get transfered inside the bodyparts we'll drop.
|
||||
for(var/X in internal_organs)
|
||||
@@ -35,7 +37,7 @@
|
||||
var/org_zone = check_zone(O.zone) //both groin and chest organs.
|
||||
if(org_zone == "chest")
|
||||
O.Remove(src)
|
||||
O.forceMove(get_turf(src))
|
||||
O.forceMove(Tsec)
|
||||
O.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
||||
else
|
||||
for(var/X in internal_organs)
|
||||
@@ -47,7 +49,7 @@
|
||||
qdel(I)
|
||||
continue
|
||||
I.Remove(src)
|
||||
I.forceMove(get_turf(src))
|
||||
I.forceMove(Tsec)
|
||||
I.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
||||
|
||||
|
||||
@@ -55,4 +57,4 @@
|
||||
for(var/X in bodyparts)
|
||||
var/obj/item/bodypart/BP = X
|
||||
BP.drop_limb()
|
||||
BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
||||
BP.throw_at(get_edge_target_turf(src,pick(GLOB.alldirs)),rand(1,3),5)
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
/mob/living/carbon/human/spawn_gibs(with_bodyparts)
|
||||
if(with_bodyparts)
|
||||
new /obj/effect/gibspawner/human(get_turf(src), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/human(drop_location(), dna, get_static_viruses())
|
||||
else
|
||||
new /obj/effect/gibspawner/humanbodypartless(get_turf(src), dna, get_static_viruses())
|
||||
new /obj/effect/gibspawner/humanbodypartless(drop_location(), dna, get_static_viruses())
|
||||
|
||||
/mob/living/carbon/human/spawn_dust(just_ash = FALSE)
|
||||
if(just_ash)
|
||||
|
||||
@@ -25,9 +25,10 @@
|
||||
create_internal_organs() //most of it is done in set_species now, this is only for parent call
|
||||
|
||||
handcrafting = new()
|
||||
AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT), CALLBACK(src, .proc/clean_blood))
|
||||
|
||||
|
||||
. = ..()
|
||||
|
||||
AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT), CALLBACK(src, .proc/clean_blood))
|
||||
|
||||
/mob/living/carbon/human/OpenCraftingMenu()
|
||||
handcrafting.ui_interact(src)
|
||||
@@ -1026,4 +1027,4 @@
|
||||
race = /datum/species/zombie/infectious
|
||||
|
||||
/mob/living/carbon/human/species/zombie/krokodil_addict
|
||||
race = /datum/species/krokodil_addict
|
||||
race = /datum/species/krokodil_addict
|
||||
|
||||
@@ -68,7 +68,10 @@
|
||||
P.firer = src
|
||||
P.yo = new_y - curloc.y
|
||||
P.xo = new_x - curloc.x
|
||||
P.Angle = null
|
||||
var/new_angle_s = P.Angle + rand(120,240)
|
||||
while(new_angle_s > 180) // Translate to regular projectile degrees
|
||||
new_angle_s -= 360
|
||||
P.setAngle(new_angle_s)
|
||||
|
||||
return -1 // complete projectile permutation
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
return
|
||||
|
||||
/mob/living/proc/spawn_gibs()
|
||||
new /obj/effect/gibspawner/generic(get_turf(src), null, get_static_viruses())
|
||||
new /obj/effect/gibspawner/generic(drop_location(), null, get_static_viruses())
|
||||
|
||||
/mob/living/proc/spill_organs()
|
||||
return
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
/obj/item/clothing/head/mob_holder/relaymove()
|
||||
/obj/item/clothing/head/mob_holder/relaymove(mob/user)
|
||||
release()
|
||||
|
||||
/obj/item/clothing/head/mob_holder/container_resist()
|
||||
|
||||
@@ -786,9 +786,10 @@
|
||||
if(QDELETED(src))
|
||||
return
|
||||
if(butcher_results)
|
||||
var/atom/Tsec = drop_location()
|
||||
for(var/path in butcher_results)
|
||||
for(var/i = 1; i <= butcher_results[path];i++)
|
||||
new path(src.loc)
|
||||
new path(Tsec)
|
||||
butcher_results.Remove(path) //In case you want to have things like simple_animals drop their butcher results on gib, so it won't double up below.
|
||||
visible_message("<span class='notice'>[user] butchers [src].</span>")
|
||||
gib(0, 0, 1)
|
||||
@@ -1034,7 +1035,7 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
if(client)
|
||||
reset_perspective(destination)
|
||||
reset_perspective()
|
||||
update_canmove() //if the mob was asleep inside a container and then got forceMoved out we need to make them fall.
|
||||
|
||||
/mob/living/proc/update_z(new_z) // 1+ to register, null to unregister
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/mob/living/silicon/spawn_gibs()
|
||||
new /obj/effect/gibspawner/robot(get_turf(src))
|
||||
new /obj/effect/gibspawner/robot(drop_location())
|
||||
|
||||
/mob/living/silicon/spawn_dust()
|
||||
new /obj/effect/decal/remains/robot(loc)
|
||||
|
||||
@@ -146,6 +146,10 @@
|
||||
P.firer = src
|
||||
P.yo = new_y - curloc.y
|
||||
P.xo = new_x - curloc.x
|
||||
var/new_angle_s = P.Angle + rand(120,240)
|
||||
while(new_angle_s > 180) // Translate to regular projectile degrees
|
||||
new_angle_s -= 360
|
||||
P.setAngle(new_angle_s)
|
||||
|
||||
return -1 // complete projectile permutation
|
||||
|
||||
|
||||
@@ -244,9 +244,10 @@
|
||||
|
||||
/mob/living/simple_animal/gib()
|
||||
if(butcher_results)
|
||||
var/atom/Tsec = drop_location()
|
||||
for(var/path in butcher_results)
|
||||
for(var/i = 1; i <= butcher_results[path];i++)
|
||||
new path(src.loc)
|
||||
new path(Tsec)
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/gib_animation()
|
||||
|
||||
@@ -150,6 +150,10 @@
|
||||
if(!disabilities[disability])
|
||||
return
|
||||
|
||||
if(!sources) // No defined source cures the disability entirely.
|
||||
disabilities -= disability
|
||||
return
|
||||
|
||||
if(!islist(sources))
|
||||
sources = list(sources)
|
||||
|
||||
@@ -212,4 +216,4 @@
|
||||
if(!has_disability(DISABILITY_HUSK))
|
||||
status_flags |= DISFIGURED //makes them unknown
|
||||
update_body()
|
||||
add_disability(DISABILITY_HUSK, source)
|
||||
add_disability(DISABILITY_HUSK, source)
|
||||
|
||||
@@ -18,12 +18,14 @@
|
||||
dissipate_delay = 5
|
||||
dissipate_strength = 1
|
||||
var/list/orbiting_balls = list()
|
||||
var/miniball = FALSE
|
||||
var/produced_power
|
||||
var/energy_to_raise = 32
|
||||
var/energy_to_lower = -20
|
||||
|
||||
/obj/singularity/energy_ball/Initialize(mapload, starting_energy = 50, is_miniball = FALSE)
|
||||
. = ..()
|
||||
miniball = is_miniball
|
||||
if(!is_miniball)
|
||||
set_light(10, 7, "#EEEEFF")
|
||||
|
||||
@@ -42,10 +44,11 @@
|
||||
. = ..()
|
||||
|
||||
/obj/singularity/energy_ball/admin_investigate_setup()
|
||||
if(istype(loc, /obj/singularity/energy_ball))
|
||||
return
|
||||
if(miniball)
|
||||
return //don't annnounce miniballs
|
||||
..()
|
||||
|
||||
|
||||
/obj/singularity/energy_ball/process()
|
||||
if(!orbiting)
|
||||
handle_energy()
|
||||
|
||||
@@ -86,14 +86,18 @@
|
||||
return
|
||||
if(user.transferItemToLoc(A, src))
|
||||
to_chat(user, "<span class='notice'>You screw [S] onto [src].</span>")
|
||||
suppressed = A
|
||||
S.oldsound = fire_sound
|
||||
fire_sound = 'sound/weapons/gunshot_silenced.ogg'
|
||||
w_class += A.w_class //so pistols do not fit in pockets when suppressed
|
||||
update_icon()
|
||||
install_suppressor(A)
|
||||
return
|
||||
return 0
|
||||
|
||||
/obj/item/gun/ballistic/proc/install_suppressor(obj/item/suppressor/S)
|
||||
// this proc assumes that the suppressor is already inside src
|
||||
suppressed = S
|
||||
S.oldsound = fire_sound
|
||||
fire_sound = 'sound/weapons/gunshot_silenced.ogg'
|
||||
w_class += S.w_class //so pistols do not fit in pockets when suppressed
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/ballistic/attack_hand(mob/user)
|
||||
if(loc == user)
|
||||
if(suppressed && can_unsuppress)
|
||||
|
||||
@@ -12,7 +12,11 @@
|
||||
/obj/item/gun/ballistic/automatic/pistol/update_icon()
|
||||
..()
|
||||
icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
|
||||
return
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/suppressed/Initialize(mapload)
|
||||
. = ..()
|
||||
var/obj/item/suppressor/S = new(src)
|
||||
install_suppressor(S)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/pistol/m1911
|
||||
name = "\improper M1911"
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
id = "cargorequest"
|
||||
build_path = /obj/item/circuitboard/computer/cargo/request
|
||||
category = list("Computer Boards")
|
||||
|
||||
|
||||
/datum/design/board/stockexchange
|
||||
name = "Computer Design (Stock Exchange Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a Stock Exchange Console."
|
||||
|
||||
@@ -2,6 +2,16 @@
|
||||
/////////////////////////////////////////
|
||||
/////////////////Mining//////////////////
|
||||
/////////////////////////////////////////
|
||||
/datum/design/cargo_express
|
||||
name = "Computer Design (Express Supply Console)"//shes beautiful
|
||||
desc = "Allows for the construction of circuit boards used to build an Express Supply Console."//who?
|
||||
id = "cargoexpress"//the coder reading this
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GLASS = 1000)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/circuitboard/computer/cargo/express
|
||||
category = list("Mining Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO
|
||||
|
||||
/datum/design/drill
|
||||
name = "Mining Drill"
|
||||
|
||||
@@ -424,7 +424,7 @@
|
||||
display_name = "Mining Technology"
|
||||
description = "Better than Efficiency V."
|
||||
prereq_ids = list("engineering")
|
||||
design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor")
|
||||
design_ids = list("drill", "superresonator", "triggermod", "damagemod", "cooldownmod", "rangemod", "ore_redemption", "mining_equipment_vendor", "cargoexpress")//e a r l y g a m e)
|
||||
research_cost = 2500
|
||||
export_price = 10000
|
||||
|
||||
|
||||
@@ -1,210 +1,178 @@
|
||||
//In this file: Summon Magic/Summon Guns/Summon Events
|
||||
|
||||
/proc/rightandwrong(summon_type, mob/user, survivor_probability) //0 = Summon Guns, 1 = Summon Magic
|
||||
var/list/gunslist = list("taser","gravgun","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","speargun","arg","uzi","alienpistol","dragnet","turret","pulsecarbine","decloner","mindflayer","hyperkinetic","advplasmacutter","wormhole","wt550","bulldog","grenadelauncher","goldenrevolver","sniper","medibeam","scatterbeam")
|
||||
var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying","staffdoor","voodoo", "whistle", "battlemage", "immortality", "ghostsword", "special")
|
||||
var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos", "necromantic", "bloodcontract")
|
||||
// 1 in 50 chance of getting something really special.
|
||||
#define SPECIALIST_MAGIC_PROB 2
|
||||
|
||||
GLOBAL_LIST_INIT(summoned_guns, list(
|
||||
/obj/item/gun/energy/e_gun/advtaser,
|
||||
/obj/item/gun/energy/e_gun,
|
||||
/obj/item/gun/energy/laser,
|
||||
/obj/item/gun/ballistic/revolver,
|
||||
/obj/item/gun/ballistic/revolver/detective,
|
||||
/obj/item/gun/ballistic/automatic/pistol/deagle/camo,
|
||||
/obj/item/gun/ballistic/automatic/gyropistol,
|
||||
/obj/item/gun/energy/pulse,
|
||||
/obj/item/gun/ballistic/automatic/pistol/suppressed,
|
||||
/obj/item/gun/ballistic/revolver/doublebarrel,
|
||||
/obj/item/gun/ballistic/shotgun,
|
||||
/obj/item/gun/ballistic/shotgun/automatic/combat,
|
||||
/obj/item/gun/ballistic/automatic/ar,
|
||||
/obj/item/gun/ballistic/revolver/mateba,
|
||||
/obj/item/gun/ballistic/shotgun/boltaction,
|
||||
/obj/item/gun/ballistic/automatic/speargun,
|
||||
/obj/item/gun/ballistic/automatic/mini_uzi,
|
||||
/obj/item/gun/energy/lasercannon,
|
||||
/obj/item/gun/energy/kinetic_accelerator/crossbow/large,
|
||||
/obj/item/gun/energy/e_gun/nuclear,
|
||||
/obj/item/gun/ballistic/automatic/proto,
|
||||
/obj/item/gun/ballistic/automatic/shotgun/bulldog,
|
||||
/obj/item/gun/ballistic/automatic/c20r,
|
||||
/obj/item/gun/ballistic/automatic/l6_saw,
|
||||
/obj/item/gun/ballistic/automatic/m90,
|
||||
/obj/item/gun/energy/alien,
|
||||
/obj/item/gun/energy/e_gun/dragnet,
|
||||
/obj/item/gun/energy/e_gun/turret,
|
||||
/obj/item/gun/energy/pulse/carbine,
|
||||
/obj/item/gun/energy/decloner,
|
||||
/obj/item/gun/energy/mindflayer,
|
||||
/obj/item/gun/energy/kinetic_accelerator,
|
||||
/obj/item/gun/energy/plasmacutter/adv,
|
||||
/obj/item/gun/energy/wormhole_projector,
|
||||
/obj/item/gun/ballistic/automatic/wt550,
|
||||
/obj/item/gun/ballistic/automatic/shotgun,
|
||||
/obj/item/gun/ballistic/revolver/grenadelauncher,
|
||||
/obj/item/gun/ballistic/revolver/golden,
|
||||
/obj/item/gun/ballistic/automatic/sniper_rifle,
|
||||
/obj/item/gun/medbeam,
|
||||
/obj/item/gun/energy/laser/scatter,
|
||||
/obj/item/gun/energy/gravity_gun))
|
||||
|
||||
GLOBAL_LIST_INIT(summoned_magic, list(
|
||||
/obj/item/spellbook/oneuse/fireball,
|
||||
/obj/item/spellbook/oneuse/smoke,
|
||||
/obj/item/spellbook/oneuse/blind,
|
||||
/obj/item/spellbook/oneuse/mindswap,
|
||||
/obj/item/spellbook/oneuse/forcewall,
|
||||
/obj/item/spellbook/oneuse/knock,
|
||||
/obj/item/spellbook/oneuse/barnyard,
|
||||
/obj/item/spellbook/oneuse/charge,
|
||||
/obj/item/spellbook/oneuse/summonitem,
|
||||
/obj/item/gun/magic/wand,
|
||||
/obj/item/gun/magic/wand/death,
|
||||
/obj/item/gun/magic/wand/resurrection,
|
||||
/obj/item/gun/magic/wand/polymorph,
|
||||
/obj/item/gun/magic/wand/teleport,
|
||||
/obj/item/gun/magic/wand/door,
|
||||
/obj/item/gun/magic/wand/fireball,
|
||||
/obj/item/gun/magic/staff/healing,
|
||||
/obj/item/gun/magic/staff/door,
|
||||
/obj/item/scrying,
|
||||
/obj/item/voodoo,
|
||||
/obj/item/warpwhistle,
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
|
||||
/obj/item/device/immortality_talisman,
|
||||
/obj/item/melee/ghost_sword))
|
||||
|
||||
GLOBAL_LIST_INIT(summoned_special_magic, list(
|
||||
/obj/item/gun/magic/staff/change,
|
||||
/obj/item/gun/magic/staff/animate,
|
||||
/obj/item/storage/belt/wands/full,
|
||||
/obj/item/antag_spawner/contract,
|
||||
/obj/item/gun/magic/staff/chaos,
|
||||
/obj/item/device/necromantic_stone,
|
||||
/obj/item/blood_contract))
|
||||
|
||||
// If true, it's the probability of triggering "survivor" antag.
|
||||
GLOBAL_VAR_INIT(summon_guns_triggered, FALSE)
|
||||
GLOBAL_VAR_INIT(summon_magic_triggered, FALSE)
|
||||
|
||||
/proc/give_guns(mob/living/carbon/human/H)
|
||||
if(H.stat == DEAD || !(H.client))
|
||||
return
|
||||
if(H.mind)
|
||||
if(iswizard(H) || H.mind.special_role == "survivalist")
|
||||
return
|
||||
|
||||
if(prob(GLOB.summon_guns_triggered) && !(H.mind in SSticker.mode.traitors))
|
||||
SSticker.mode.traitors += H.mind
|
||||
|
||||
var/datum/objective/steal_five_of_type/summon_guns/guns = new
|
||||
guns.owner = H.mind
|
||||
H.mind.objectives += guns
|
||||
H.mind.special_role = "survivalist"
|
||||
H.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
||||
to_chat(H, "<B>You are the survivalist! Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, by any means necessary. Kill anyone who gets in your way.</B>")
|
||||
|
||||
var/datum/objective/survive/survive = new
|
||||
survive.owner = H.mind
|
||||
H.mind.objectives += survive
|
||||
H.log_message("<font color='red'>Was made into a survivalist, and trusts no one!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
H.mind.announce_objectives()
|
||||
|
||||
var/gun_type = pick(GLOB.summoned_guns)
|
||||
var/obj/item/gun/G = new gun_type(get_turf(H))
|
||||
G.unlock()
|
||||
playsound(get_turf(H),'sound/magic/summon_guns.ogg', 50, 1)
|
||||
|
||||
var/in_hand = H.put_in_hands(G) // not always successful
|
||||
|
||||
to_chat(H, "<span class='warning'>\A [G] appears [in_hand ? "in your hand" : "at your feet"]!</span>")
|
||||
|
||||
/proc/give_magic(mob/living/carbon/human/H)
|
||||
if(H.stat == DEAD || !(H.client))
|
||||
return
|
||||
if(H.mind)
|
||||
if(iswizard(H) || H.mind.special_role == "survivalist")
|
||||
return
|
||||
|
||||
if(prob(GLOB.summon_magic_triggered) && !(H.mind in SSticker.mode.traitors))
|
||||
var/datum/objective/steal_five_of_type/summon_magic/magic = new
|
||||
magic.owner = H.mind
|
||||
H.mind.objectives += magic
|
||||
H.mind.special_role = "amateur magician"
|
||||
H.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
||||
to_chat(H, "<B>You are the amateur magician! Grow your newfound talent! Grab as many magical artefacts as possible, by any means necessary. Kill anyone who gets in your way.</B>")
|
||||
|
||||
var/datum/objective/survive/survive = new
|
||||
survive.owner = H.mind
|
||||
H.mind.objectives += survive
|
||||
H.log_message("<font color='red'>Was made into a survivalist, and trusts no one!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
H.mind.announce_objectives()
|
||||
|
||||
var/magic_type = pick(GLOB.summoned_magic)
|
||||
var/lucky = FALSE
|
||||
if(prob(SPECIALIST_MAGIC_PROB))
|
||||
magic_type = pick(GLOB.summoned_special_magic)
|
||||
lucky = TRUE
|
||||
|
||||
var/obj/item/M = new magic_type(get_turf(H))
|
||||
playsound(get_turf(H),'sound/magic/summon_magic.ogg', 50, 1)
|
||||
|
||||
var/in_hand = H.put_in_hands(M)
|
||||
|
||||
to_chat(H, "<span class='warning'>\A [M] appears [in_hand ? "in your hand" : "at your feet"]!</span>")
|
||||
if(lucky)
|
||||
to_chat(H, "<span class='notice'>You feel incredibly lucky.</span>")
|
||||
|
||||
|
||||
/proc/rightandwrong(summon_type, mob/user, survivor_probability)
|
||||
if(user) //in this case either someone holding a spellbook or a badmin
|
||||
to_chat(user, "<B>You summoned [summon_type ? "magic" : "guns"]!</B>")
|
||||
message_admins("[key_name_admin(user, 1)] summoned [summon_type ? "magic" : "guns"]!")
|
||||
log_game("[key_name(user)] summoned [summon_type ? "magic" : "guns"]!")
|
||||
to_chat(user, "<span class='warning'>You summoned [summon_type]!</span>")
|
||||
message_admins("[key_name_admin(user, 1)] summoned [summon_type]!")
|
||||
log_game("[key_name(user)] summoned [summon_type]!")
|
||||
|
||||
if(summon_type == SUMMON_MAGIC)
|
||||
GLOB.summon_magic_triggered = survivor_probability
|
||||
else if(summon_type == SUMMON_GUNS)
|
||||
GLOB.summon_guns_triggered = survivor_probability
|
||||
else
|
||||
CRASH("Bad summon_type given: [summon_type]")
|
||||
|
||||
for(var/mob/living/carbon/human/H in GLOB.player_list)
|
||||
if(H.stat == DEAD || !(H.client))
|
||||
continue
|
||||
if(H.mind)
|
||||
if(iswizard(H) || H.mind.special_role == "survivalist")
|
||||
continue
|
||||
if(prob(survivor_probability) && !(H.mind in SSticker.mode.traitors))
|
||||
SSticker.mode.traitors += H.mind
|
||||
if(!summon_type)
|
||||
var/datum/objective/steal_five_of_type/summon_guns/guns = new
|
||||
guns.owner = H.mind
|
||||
H.mind.objectives += guns
|
||||
H.mind.special_role = "survivalist"
|
||||
H.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
||||
to_chat(H, "<B>You are the survivalist! Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, by any means necessary. Kill anyone who gets in your way.</B>")
|
||||
else
|
||||
var/datum/objective/steal_five_of_type/summon_magic/magic = new
|
||||
magic.owner = H.mind
|
||||
H.mind.objectives += magic
|
||||
H.mind.special_role = "amateur magician"
|
||||
H.mind.add_antag_datum(/datum/antagonist/auto_custom)
|
||||
to_chat(H, "<B>You are the amateur magician! Grow your newfound talent! Grab as many magical artefacts as possible, by any means necessary. Kill anyone who gets in your way.</B>")
|
||||
var/datum/objective/survive/survive = new
|
||||
survive.owner = H.mind
|
||||
H.mind.objectives += survive
|
||||
H.log_message("<font color='red'>Was made into a survivalist, and trusts no one!</font>", INDIVIDUAL_ATTACK_LOG)
|
||||
H.mind.announce_objectives()
|
||||
var/randomizeguns = pick(gunslist)
|
||||
var/randomizemagic = pick(magiclist)
|
||||
var/randomizemagicspecial = pick(magicspeciallist)
|
||||
if(!summon_type)
|
||||
var/obj/item/gun/G
|
||||
switch (randomizeguns)
|
||||
if("taser")
|
||||
G = new /obj/item/gun/energy/e_gun/advtaser(get_turf(H))
|
||||
if("egun")
|
||||
G = new /obj/item/gun/energy/e_gun(get_turf(H))
|
||||
if("laser")
|
||||
G = new /obj/item/gun/energy/laser(get_turf(H))
|
||||
if("revolver")
|
||||
G = new /obj/item/gun/ballistic/revolver(get_turf(H))
|
||||
if("detective")
|
||||
G = new /obj/item/gun/ballistic/revolver/detective(get_turf(H))
|
||||
if("deagle")
|
||||
G = new /obj/item/gun/ballistic/automatic/pistol/deagle/camo(get_turf(H))
|
||||
if("gyrojet")
|
||||
G = new /obj/item/gun/ballistic/automatic/gyropistol(get_turf(H))
|
||||
if("pulse")
|
||||
G = new /obj/item/gun/energy/pulse(get_turf(H))
|
||||
if("suppressed")
|
||||
G = new /obj/item/gun/ballistic/automatic/pistol(get_turf(H))
|
||||
new /obj/item/suppressor(get_turf(H))
|
||||
if("doublebarrel")
|
||||
G = new /obj/item/gun/ballistic/revolver/doublebarrel(get_turf(H))
|
||||
if("shotgun")
|
||||
G = new /obj/item/gun/ballistic/shotgun(get_turf(H))
|
||||
if("combatshotgun")
|
||||
G = new /obj/item/gun/ballistic/shotgun/automatic/combat(get_turf(H))
|
||||
if("arg")
|
||||
G = new /obj/item/gun/ballistic/automatic/ar(get_turf(H))
|
||||
if("mateba")
|
||||
G = new /obj/item/gun/ballistic/revolver/mateba(get_turf(H))
|
||||
if("boltaction")
|
||||
G = new /obj/item/gun/ballistic/shotgun/boltaction(get_turf(H))
|
||||
if("speargun")
|
||||
G = new /obj/item/gun/ballistic/automatic/speargun(get_turf(H))
|
||||
if("uzi")
|
||||
G = new /obj/item/gun/ballistic/automatic/mini_uzi(get_turf(H))
|
||||
if("cannon")
|
||||
G = new /obj/item/gun/energy/lasercannon(get_turf(H))
|
||||
if("crossbow")
|
||||
G = new /obj/item/gun/energy/kinetic_accelerator/crossbow/large(get_turf(H))
|
||||
if("nuclear")
|
||||
G = new /obj/item/gun/energy/e_gun/nuclear(get_turf(H))
|
||||
if("sabr")
|
||||
G = new /obj/item/gun/ballistic/automatic/proto(get_turf(H))
|
||||
if("bulldog")
|
||||
G = new /obj/item/gun/ballistic/automatic/shotgun/bulldog(get_turf(H))
|
||||
if("c20r")
|
||||
G = new /obj/item/gun/ballistic/automatic/c20r(get_turf(H))
|
||||
if("saw")
|
||||
G = new /obj/item/gun/ballistic/automatic/l6_saw(get_turf(H))
|
||||
if("car")
|
||||
G = new /obj/item/gun/ballistic/automatic/m90(get_turf(H))
|
||||
if("alienpistol")
|
||||
G = new /obj/item/gun/energy/alien(get_turf(H))
|
||||
if("dragnet")
|
||||
G = new /obj/item/gun/energy/e_gun/dragnet(get_turf(H))
|
||||
if("turret")
|
||||
G = new /obj/item/gun/energy/e_gun/turret(get_turf(H))
|
||||
if("pulsecarbine")
|
||||
G = new /obj/item/gun/energy/pulse/carbine(get_turf(H))
|
||||
if("decloner")
|
||||
G = new /obj/item/gun/energy/decloner(get_turf(H))
|
||||
if("mindflayer")
|
||||
G = new /obj/item/gun/energy/mindflayer(get_turf(H))
|
||||
if("hyperkinetic")
|
||||
G = new /obj/item/gun/energy/kinetic_accelerator(get_turf(H))
|
||||
if("advplasmacutter")
|
||||
G = new /obj/item/gun/energy/plasmacutter/adv(get_turf(H))
|
||||
if("wormhole")
|
||||
G = new /obj/item/gun/energy/wormhole_projector(get_turf(H))
|
||||
if("wt550")
|
||||
G = new /obj/item/gun/ballistic/automatic/wt550(get_turf(H))
|
||||
if("bulldog")
|
||||
G = new /obj/item/gun/ballistic/automatic/shotgun(get_turf(H))
|
||||
if("grenadelauncher")
|
||||
G = new /obj/item/gun/ballistic/revolver/grenadelauncher(get_turf(H))
|
||||
if("goldenrevolver")
|
||||
G = new /obj/item/gun/ballistic/revolver/golden(get_turf(H))
|
||||
if("sniper")
|
||||
G = new /obj/item/gun/ballistic/automatic/sniper_rifle(get_turf(H))
|
||||
if("medibeam")
|
||||
G = new /obj/item/gun/medbeam(get_turf(H))
|
||||
if("scatterbeam")
|
||||
G = new /obj/item/gun/energy/laser/scatter(get_turf(H))
|
||||
if("gravgun")
|
||||
G = new /obj/item/gun/energy/gravity_gun(get_turf(H))
|
||||
G.unlock()
|
||||
playsound(get_turf(H),'sound/magic/summon_guns.ogg', 50, 1)
|
||||
|
||||
if(summon_type == SUMMON_MAGIC)
|
||||
give_magic(H)
|
||||
else
|
||||
switch (randomizemagic)
|
||||
if("fireball")
|
||||
new /obj/item/spellbook/oneuse/fireball(get_turf(H))
|
||||
if("smoke")
|
||||
new /obj/item/spellbook/oneuse/smoke(get_turf(H))
|
||||
if("blind")
|
||||
new /obj/item/spellbook/oneuse/blind(get_turf(H))
|
||||
if("mindswap")
|
||||
new /obj/item/spellbook/oneuse/mindswap(get_turf(H))
|
||||
if("forcewall")
|
||||
new /obj/item/spellbook/oneuse/forcewall(get_turf(H))
|
||||
if("knock")
|
||||
new /obj/item/spellbook/oneuse/knock(get_turf(H))
|
||||
if("horsemask")
|
||||
new /obj/item/spellbook/oneuse/barnyard(get_turf(H))
|
||||
if("charge")
|
||||
new /obj/item/spellbook/oneuse/charge(get_turf(H))
|
||||
if("summonitem")
|
||||
new /obj/item/spellbook/oneuse/summonitem(get_turf(H))
|
||||
if("wandnothing")
|
||||
new /obj/item/gun/magic/wand(get_turf(H))
|
||||
if("wanddeath")
|
||||
new /obj/item/gun/magic/wand/death(get_turf(H))
|
||||
if("wandresurrection")
|
||||
new /obj/item/gun/magic/wand/resurrection(get_turf(H))
|
||||
if("wandpolymorph")
|
||||
new /obj/item/gun/magic/wand/polymorph(get_turf(H))
|
||||
if("wandteleport")
|
||||
new /obj/item/gun/magic/wand/teleport(get_turf(H))
|
||||
if("wanddoor")
|
||||
new /obj/item/gun/magic/wand/door(get_turf(H))
|
||||
if("wandfireball")
|
||||
new /obj/item/gun/magic/wand/fireball(get_turf(H))
|
||||
if("staffhealing")
|
||||
new /obj/item/gun/magic/staff/healing(get_turf(H))
|
||||
if("staffdoor")
|
||||
new /obj/item/gun/magic/staff/door(get_turf(H))
|
||||
if("armor")
|
||||
new /obj/item/clothing/suit/space/hardsuit/wizard(get_turf(H))
|
||||
if("scrying")
|
||||
new /obj/item/scrying(get_turf(H))
|
||||
if (!(H.dna.check_mutation(XRAY)))
|
||||
H.dna.add_mutation(XRAY)
|
||||
to_chat(H, "<span class='notice'>The walls suddenly disappear.</span>")
|
||||
if("voodoo")
|
||||
new /obj/item/voodoo(get_turf(H))
|
||||
if("whistle")
|
||||
new /obj/item/warpwhistle(get_turf(H))
|
||||
if("battlemage")
|
||||
new /obj/item/clothing/suit/space/hardsuit/shielded/wizard(get_turf(H))
|
||||
if("immortality")
|
||||
new /obj/item/device/immortality_talisman(get_turf(H))
|
||||
if("ghostsword")
|
||||
new /obj/item/melee/ghost_sword(get_turf(H))
|
||||
if("special")
|
||||
magiclist -= "special" //only one super OP item per summoning max
|
||||
switch (randomizemagicspecial)
|
||||
if("staffchange")
|
||||
new /obj/item/gun/magic/staff/change(get_turf(H))
|
||||
if("staffanimation")
|
||||
new /obj/item/gun/magic/staff/animate(get_turf(H))
|
||||
if("wandbelt")
|
||||
new /obj/item/storage/belt/wands/full(get_turf(H))
|
||||
if("contract")
|
||||
new /obj/item/antag_spawner/contract(get_turf(H))
|
||||
if("staffchaos")
|
||||
new /obj/item/gun/magic/staff/chaos(get_turf(H))
|
||||
if("necromantic")
|
||||
new /obj/item/device/necromantic_stone(get_turf(H))
|
||||
if("bloodcontract")
|
||||
new /obj/item/blood_contract(get_turf(H))
|
||||
to_chat(H, "<span class='notice'>You suddenly feel lucky.</span>")
|
||||
playsound(get_turf(H),'sound/magic/summon_magic.ogg', 50, 1)
|
||||
|
||||
give_guns(H)
|
||||
|
||||
/proc/summonevents()
|
||||
if(!SSevents.wizardmode)
|
||||
@@ -221,3 +189,5 @@
|
||||
SSevents.reschedule()
|
||||
message_admins("Summon Events intensifies, events will now occur every [SSevents.frequency_lower / 600] to [SSevents.frequency_upper / 600] minutes.")
|
||||
log_game("Summon Events was increased!")
|
||||
|
||||
#undef SPECIALIST_MAGIC_PROB
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
/obj/item/bodypart/proc/drop_limb(special)
|
||||
if(!owner)
|
||||
return
|
||||
var/turf/T = get_turf(owner)
|
||||
var/atom/Tsec = owner.drop_location()
|
||||
var/mob/living/carbon/C = owner
|
||||
update_limb(1)
|
||||
C.bodyparts -= src
|
||||
@@ -126,7 +126,7 @@
|
||||
C.update_hair()
|
||||
C.update_canmove()
|
||||
|
||||
if(!T) // T = null happens when a "dummy human" used for rendering icons on prefs screen gets its limbs replaced.
|
||||
if(!Tsec) // Tsec = null happens when a "dummy human" used for rendering icons on prefs screen gets its limbs replaced.
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
forceMove(T)
|
||||
forceMove(Tsec)
|
||||
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
..()
|
||||
if(C && !special)
|
||||
if(C.handcuffed)
|
||||
C.handcuffed.forceMove(C.loc)
|
||||
C.handcuffed.forceMove(drop_location())
|
||||
C.handcuffed.dropped(C)
|
||||
C.handcuffed = null
|
||||
C.update_handcuffed()
|
||||
@@ -185,7 +185,7 @@
|
||||
..()
|
||||
if(C && !special)
|
||||
if(C.handcuffed)
|
||||
C.handcuffed.forceMove(C.loc)
|
||||
C.handcuffed.forceMove(drop_location())
|
||||
C.handcuffed.dropped(C)
|
||||
C.handcuffed = null
|
||||
C.update_handcuffed()
|
||||
@@ -201,7 +201,7 @@
|
||||
/obj/item/bodypart/r_leg/drop_limb(special)
|
||||
if(owner && !special)
|
||||
if(owner.legcuffed)
|
||||
owner.legcuffed.forceMove(owner.loc)
|
||||
owner.legcuffed.forceMove(drop_location())
|
||||
owner.legcuffed.dropped(owner)
|
||||
owner.legcuffed = null
|
||||
owner.update_inv_legcuffed()
|
||||
@@ -212,7 +212,7 @@
|
||||
/obj/item/bodypart/l_leg/drop_limb(special) //copypasta
|
||||
if(owner && !special)
|
||||
if(owner.legcuffed)
|
||||
owner.legcuffed.forceMove(owner.loc)
|
||||
owner.legcuffed.forceMove(drop_location())
|
||||
owner.legcuffed.dropped(owner)
|
||||
owner.legcuffed = null
|
||||
owner.update_inv_legcuffed()
|
||||
|
||||
+1
-2
@@ -6,10 +6,9 @@
|
||||
turf = /turf/open/space/basic
|
||||
area = /area/space
|
||||
view = "15x15"
|
||||
cache_lifespan = 7
|
||||
hub = "Exadv1.spacestation13"
|
||||
name = "/tg/ Station 13"
|
||||
fps = 20
|
||||
#ifdef GC_FAILURE_HARD_LOOKUP
|
||||
#ifdef FIND_REF_NO_CHECK_TICK
|
||||
loop_checks = FALSE
|
||||
#endif
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 13 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 107 KiB |
@@ -17,7 +17,6 @@ It's fun to try and predict the round type from the tip of the round message.
|
||||
The quartermaster is not a head of staff and will never be one.
|
||||
The bird remembers.
|
||||
Your sprite represents your hitbox, so that afro makes you easier to kill. The sacrifices we make for style.
|
||||
Spacemen can't move diagonally but most animals can. Blame the slow decline of the numpad.
|
||||
Sometimes admins will just do stuff. Roll with it.
|
||||
The remake will never come out.
|
||||
Plenty of things that aren't traditionally considered weapons can still be used to slowly brutalize someone to death, get creative!
|
||||
@@ -26,4 +25,4 @@ This game is older than most of the people playing it.
|
||||
Do not go gentle into that good night.
|
||||
Flashbangs can weaken blob tiles, allowing for you and the crew to easily destroy them.
|
||||
Just the tip?
|
||||
Some people are unable to read text on a game where half of it is based on text.
|
||||
Some people are unable to read text on a game where half of it is based on text.
|
||||
|
||||
@@ -1055,6 +1055,7 @@
|
||||
#include "code\game\objects\structures\crates_lockers\closets\utility_closets.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\wardrobe.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\bar.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\bsdroppod.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm"
|
||||
#include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm"
|
||||
@@ -1246,6 +1247,7 @@
|
||||
#include "code\modules\cargo\console.dm"
|
||||
#include "code\modules\cargo\export_scanner.dm"
|
||||
#include "code\modules\cargo\exports.dm"
|
||||
#include "code\modules\cargo\expressconsole.dm"
|
||||
#include "code\modules\cargo\order.dm"
|
||||
#include "code\modules\cargo\packs.dm"
|
||||
#include "code\modules\cargo\exports\gear.dm"
|
||||
|
||||
File diff suppressed because one or more lines are too long
+18
-18
File diff suppressed because one or more lines are too long
@@ -0,0 +1,43 @@
|
||||
|
||||
<script>
|
||||
component.exports = {
|
||||
computed: {
|
||||
tabs () {
|
||||
return Object.keys(this.get('data.supplies'))
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-notice>
|
||||
{{#if data.siliconUser }}
|
||||
<ui-section label='Interface Lock'>
|
||||
<ui-button icon='{{data.locked ? "lock" : "unlock"}}' action='lock'>{{data.locked ? "Engaged" : "Disengaged"}}</ui-button>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<span>Swipe a QM-Level ID card to {{data.locked ? "unlock" : "lock"}} this interface.</span>
|
||||
{{/if}}
|
||||
</ui-notice>
|
||||
|
||||
{{#if !data.locked }}
|
||||
<ui-display title='Express Cargo Console'>
|
||||
<ui-section label='Credits'>
|
||||
<span>{{Math.floor(adata.points)}}</span>
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Notice'>
|
||||
<span>{{data.message}}</span>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-tabs tabs='{{tabs}}'>
|
||||
{{#each data.supplies}}
|
||||
<tab name='{{name}}'>
|
||||
{{#each packs}}
|
||||
<ui-section label='{{name}}' candystripe right>
|
||||
<ui-button action='add' params='{"id": "{{id}}"}'>{{cost}} Credits (Premium Pricing)</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</tab>
|
||||
{{/each}}
|
||||
</ui-tabs>
|
||||
{{/if}}
|
||||
@@ -546,7 +546,7 @@ function auto_update($payload){
|
||||
$content = file_get_contents('https://raw.githubusercontent.com/' . $repoOwnerAndName . '/' . $tracked_branch . '/'. $path_to_script);
|
||||
$content_diff = "### Diff not available. :slightly_frowning_face:";
|
||||
if($github_diff && preg_match('/(diff --git a\/' . preg_quote($path_to_script, '/') . '.+?)(?:^diff)?/sm', $github_diff, $matches)) {
|
||||
$script_diff = matches[1];
|
||||
$script_diff = $matches[1];
|
||||
if($script_diff) {
|
||||
$content_diff = "``" . "`DIFF\n" . $script_diff ."\n``" . "`";
|
||||
}
|
||||
|
||||
@@ -24,8 +24,8 @@ if [ "$BUILD_TOOLS" = false ]; then
|
||||
|
||||
source $HOME/BYOND-${BYOND_MAJOR}.${BYOND_MINOR}/byond/bin/byondsetup
|
||||
if [ "$BUILD_TESTING" = true ]; then
|
||||
tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme
|
||||
else
|
||||
tools/travis/dm.sh -DTRAVISBUILDING -DTRAVISTESTING -DALL_MAPS tgstation.dme
|
||||
else
|
||||
tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme
|
||||
fi;
|
||||
fi;
|
||||
|
||||
Reference in New Issue
Block a user