FestiveMap 2021
1
_maps/festivestation.dm
Normal file
@@ -0,0 +1 @@
|
||||
#define FORCE_MAP "_maps/FestiveStation.json"
|
||||
11
_maps/festivestation.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"map_name": "FestiveStation",
|
||||
"map_path": "map_files/FestiveBall",
|
||||
"map_file": "FestiveStation.dmm",
|
||||
"shuttles": {
|
||||
"cargo": "cargo_box",
|
||||
"ferry": "ferry_fancy",
|
||||
"whiteship": "whiteship_box",
|
||||
"emergency": "emergency_box"
|
||||
}
|
||||
}
|
||||
123060
_maps/map_files/FestiveBall/FestiveStation.dmm
Normal file
10
_maps/map_files/FestiveBall/doorButtonOrganizer.dm
Normal file
@@ -0,0 +1,10 @@
|
||||
// This will let me avoid having to edit all of these variables in every instance, while also avoiding var-editing.
|
||||
/obj/machinery/button/door/dorms
|
||||
name = "Dorm 1 Lock"
|
||||
normaldoorcontrol = 1
|
||||
id = "dorm01"
|
||||
specialfunctions = 4
|
||||
|
||||
/obj/machinery/door/airlock/wood/dorms
|
||||
name = "Dorm 1"
|
||||
id_tag = "dorm01"
|
||||
@@ -36662,31 +36662,31 @@
|
||||
/area/service/library)
|
||||
"bxG" = (
|
||||
/turf/closed/wall,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bxH" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/storage/crayons,
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bxI" = (
|
||||
/obj/machinery/vending/games,
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bxJ" = (
|
||||
/obj/machinery/photocopier,
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bxK" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1,
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bxL" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bxM" = (
|
||||
/obj/structure/grille,
|
||||
/turf/closed/wall/r_wall,
|
||||
@@ -36902,7 +36902,7 @@
|
||||
/area/service/library)
|
||||
"byQ" = (
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"byR" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 4
|
||||
@@ -36920,14 +36920,14 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"byT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer1{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"byU" = (
|
||||
/obj/structure/chair{
|
||||
dir = 4
|
||||
@@ -37071,18 +37071,18 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bzP" = (
|
||||
/obj/structure/table/wood,
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bzQ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,
|
||||
/obj/structure/chair/office/dark{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bzR" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -37091,7 +37091,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bzT" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
@@ -37334,7 +37334,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bAP" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/paper_bin{
|
||||
@@ -37342,7 +37342,7 @@
|
||||
pixel_y = 9
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bAQ" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -37617,13 +37617,13 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bBT" = (
|
||||
/obj/structure/chair/office/dark{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bBU" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/light/small{
|
||||
@@ -37935,22 +37935,22 @@
|
||||
pixel_y = -24
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bCL" = (
|
||||
/obj/machinery/camera/autoname{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bCM" = (
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bCN" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bCO" = (
|
||||
/obj/machinery/door/airlock/maintenance{
|
||||
name = "Library Maintenance";
|
||||
@@ -38403,7 +38403,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bEb" = (
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 1
|
||||
@@ -39760,7 +39760,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/machinery/power/apc{
|
||||
areastring = "/area/service/library/lounge";
|
||||
areastring = "/area/commons/lounge";
|
||||
dir = 4;
|
||||
name = "Library Lounge APC";
|
||||
pixel_x = 24
|
||||
@@ -39769,7 +39769,7 @@
|
||||
icon_state = "0-2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bHp" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -45616,7 +45616,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"bWB" = (
|
||||
/obj/machinery/requests_console{
|
||||
department = "AI";
|
||||
@@ -60035,7 +60035,7 @@
|
||||
name = "library camera"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cNb" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4;
|
||||
|
||||
@@ -45848,7 +45848,7 @@
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cdW" = (
|
||||
/obj/structure/reflector/box/anchored,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
@@ -47328,7 +47328,7 @@
|
||||
"ckp" = (
|
||||
/obj/structure/closet/crate/bin,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"ckt" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/open/floor/plating/asteroid/airless,
|
||||
@@ -47423,7 +47423,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"ckH" = (
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library)
|
||||
@@ -47432,7 +47432,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"ckJ" = (
|
||||
/obj/structure/sign/warning/securearea,
|
||||
/turf/closed/wall/r_wall,
|
||||
@@ -47487,12 +47487,12 @@
|
||||
},
|
||||
/obj/machinery/libraryscanner,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"ckV" = (
|
||||
/obj/effect/landmark/barthpot,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"ckW" = (
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
@@ -47503,7 +47503,7 @@
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/computer/libraryconsole,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"clb" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1;
|
||||
@@ -47556,7 +47556,7 @@
|
||||
"clm" = (
|
||||
/obj/machinery/photocopier,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cln" = (
|
||||
/obj/machinery/newscaster{
|
||||
pixel_x = -32;
|
||||
@@ -47564,7 +47564,7 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cls" = (
|
||||
/obj/effect/spawner/lootdrop/maintenance,
|
||||
/turf/closed/mineral,
|
||||
@@ -50542,7 +50542,7 @@
|
||||
/area/maintenance/department/security/brig)
|
||||
"cwe" = (
|
||||
/turf/closed/wall/mineral/iron,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cwg" = (
|
||||
/obj/structure/grille,
|
||||
/turf/open/floor/plating,
|
||||
@@ -50617,7 +50617,7 @@
|
||||
pixel_y = 26
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cww" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -50711,7 +50711,7 @@
|
||||
/obj/item/folder/yellow,
|
||||
/obj/item/pen,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cxb" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
|
||||
/obj/effect/turf_decal/tile/purple,
|
||||
@@ -50794,7 +50794,7 @@
|
||||
dir = 6
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cxL" = (
|
||||
/obj/machinery/door/window/eastright{
|
||||
base_state = "left";
|
||||
@@ -50828,7 +50828,7 @@
|
||||
/obj/structure/window/reinforced/fulltile,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/plating,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cxX" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/folder/red,
|
||||
@@ -50864,7 +50864,7 @@
|
||||
dir = 5
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cyP" = (
|
||||
/obj/structure/closet/secure_closet/warden,
|
||||
/obj/item/clothing/mask/gas/sechailer,
|
||||
@@ -51577,7 +51577,7 @@
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"cJo" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 5
|
||||
@@ -52249,7 +52249,7 @@
|
||||
"dRT" = (
|
||||
/obj/structure/bookcase/random/reference,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"dSp" = (
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
|
||||
dir = 1
|
||||
@@ -52371,7 +52371,7 @@
|
||||
"eeG" = (
|
||||
/obj/machinery/bookbinder,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"eeQ" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -52662,7 +52662,7 @@
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"eLt" = (
|
||||
/obj/structure/closet/firecloset,
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -53265,7 +53265,7 @@
|
||||
"fWv" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"fZq" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 6
|
||||
@@ -53383,7 +53383,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"giI" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
@@ -53557,7 +53557,7 @@
|
||||
"gqi" = (
|
||||
/obj/structure/bookcase/random/religion,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"gtX" = (
|
||||
/obj/structure/barricade/wooden,
|
||||
/turf/open/floor/plating,
|
||||
@@ -53943,7 +53943,7 @@
|
||||
/area/maintenance/department/science)
|
||||
"gXv" = (
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"gXZ" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/camera{
|
||||
@@ -53995,7 +53995,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"heC" = (
|
||||
/obj/machinery/power/apc/highcap/five_k{
|
||||
dir = 8;
|
||||
@@ -54807,7 +54807,7 @@
|
||||
dir = 9
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"iyP" = (
|
||||
/obj/structure/disposaloutlet,
|
||||
/turf/open/floor/plating,
|
||||
@@ -55080,7 +55080,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"iYQ" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
@@ -55101,7 +55101,7 @@
|
||||
dir = 10
|
||||
},
|
||||
/turf/closed/wall,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"jen" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
|
||||
dir = 4
|
||||
@@ -55386,7 +55386,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"jzz" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/structure/sign/warning/vacuum/external,
|
||||
@@ -55599,7 +55599,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"jXA" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/stack/ore/iron,
|
||||
@@ -56081,7 +56081,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"kPi" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/microwave,
|
||||
@@ -56169,7 +56169,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"kSb" = (
|
||||
/obj/structure/chair/office/light{
|
||||
dir = 8
|
||||
@@ -57232,7 +57232,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"mKk" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
@@ -57319,7 +57319,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"mXq" = (
|
||||
/obj/item/taperecorder,
|
||||
/obj/item/cartridge/lawyer,
|
||||
@@ -57861,7 +57861,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"nOY" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
@@ -58407,7 +58407,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"oIU" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/folder/yellow,
|
||||
@@ -59536,7 +59536,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"qBv" = (
|
||||
/obj/item/clothing/head/ushanka,
|
||||
/turf/open/floor/plating,
|
||||
@@ -59684,7 +59684,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"qOH" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
@@ -59880,7 +59880,7 @@
|
||||
"qYW" = (
|
||||
/obj/structure/bookcase/random/nonfiction,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"rar" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -60004,7 +60004,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"roc" = (
|
||||
/obj/structure/cable,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -60284,13 +60284,13 @@
|
||||
icon_state = "cobweb2"
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"rSE" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"rSH" = (
|
||||
/obj/item/trash/can,
|
||||
/turf/open/floor/wood,
|
||||
@@ -60422,7 +60422,7 @@
|
||||
"sgD" = (
|
||||
/obj/structure/bookcase/random/adult,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"shw" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/structure/cable{
|
||||
@@ -61731,7 +61731,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"uzB" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 1
|
||||
@@ -62173,7 +62173,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"vrQ" = (
|
||||
/obj/machinery/power/terminal{
|
||||
dir = 8
|
||||
@@ -62452,7 +62452,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"vRi" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -62906,7 +62906,7 @@
|
||||
"wDq" = (
|
||||
/obj/structure/bookcase/random/fiction,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"wDZ" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
|
||||
dir = 1
|
||||
@@ -63325,7 +63325,7 @@
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/carpet,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"xje" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/door/firedoor,
|
||||
@@ -63385,7 +63385,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"xlg" = (
|
||||
/obj/effect/spawner/structure/window/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
|
||||
@@ -63697,7 +63697,7 @@
|
||||
pixel_y = 22
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/service/library/lounge)
|
||||
/area/commons/lounge)
|
||||
"xNy" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
|
||||
@@ -209,6 +209,9 @@
|
||||
/datum/weather/proc/weather_act(mob/living/L)
|
||||
return
|
||||
|
||||
/datum/weather/proc/weather_act_turf(area/N) //What effect does this weather have on the area?
|
||||
return
|
||||
|
||||
/**
|
||||
* Updates the overlays on impacted areas
|
||||
*
|
||||
@@ -224,6 +227,7 @@
|
||||
N.icon_state = telegraph_overlay
|
||||
if(MAIN_STAGE)
|
||||
N.icon_state = weather_overlay
|
||||
weather_act_turf(N)
|
||||
if(WIND_DOWN_STAGE)
|
||||
N.icon_state = end_overlay
|
||||
if(END_STAGE)
|
||||
|
||||
36
code/datums/weather/weather_types/ice_storm.dm
Normal file
@@ -0,0 +1,36 @@
|
||||
//Same as snow_storm basically, but cools outside turf temps. StreetStation only
|
||||
#define ICY_SNOW_TEMP 200
|
||||
/datum/weather/ice_storm
|
||||
name = "Icestorm"
|
||||
desc = "Harsh snowstorms roam the topside of this arctic planet, burying any area unfortunate enough to be in its path."
|
||||
probability = 90
|
||||
|
||||
telegraph_message = "<span class='notice'>Drifting particles of snow begin to dust the surrounding area..</span>"
|
||||
telegraph_duration = 300
|
||||
telegraph_overlay = "light_snow"
|
||||
|
||||
weather_message = "<span class='notice'><i>Dense snow begins to fall from the sky, how festive!</i></span>"
|
||||
weather_overlay = "snow_storm"
|
||||
weather_duration_lower = 600
|
||||
weather_duration_upper = 1500
|
||||
|
||||
end_duration = 100
|
||||
end_message = "<span class='notice'>The snowfall dies down.</span>"
|
||||
|
||||
area_type = /area/edina
|
||||
protected_areas = list(/area/edina/protected)
|
||||
target_trait = ZTRAIT_STATION
|
||||
|
||||
immunity_type = "rad"
|
||||
|
||||
/datum/weather/ice_storm/weather_act(mob/living/L)
|
||||
//L.adjust_bodytemperature(-rand(10,20))
|
||||
|
||||
/datum/weather/ice_storm/weather_act_turf(area/N)
|
||||
.=..()
|
||||
//could be done better but would need a rewrite of weather which is beyond scope.
|
||||
/*
|
||||
for(var/turf/open/T in N)
|
||||
var/datum/gas_mixture/turf/G = T.air
|
||||
G.temperature = ICY_SNOW_TEMP
|
||||
*/
|
||||
@@ -924,7 +924,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
|
||||
sound_environment = SOUND_AREA_LARGE_SOFTFLOOR
|
||||
|
||||
/area/service/library/lounge
|
||||
/area/commons/lounge
|
||||
name = "Library Lounge"
|
||||
icon_state = "library_lounge"
|
||||
sound_environment = SOUND_AREA_SMALL_SOFTFLOOR
|
||||
|
||||
204
code/game/area/areas/edina.dm
Normal file
@@ -0,0 +1,204 @@
|
||||
/area/edina
|
||||
name = "Nova Edina wilderness"
|
||||
icon_state = "edina"
|
||||
has_gravity = STANDARD_GRAVITY
|
||||
clockwork_warp_allowed = FALSE // Can servants warp into this area from Reebe?
|
||||
clockwork_warp_fail = "The aurora borealis is interfering with your teleport! Try somewhere closer to the city."
|
||||
always_unpowered = TRUE
|
||||
|
||||
//dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
|
||||
power_light = FALSE
|
||||
power_equip = FALSE
|
||||
power_environ = FALSE
|
||||
outdoors = TRUE
|
||||
//ambientsounds = SPACE //For later
|
||||
|
||||
/area/edina/backstreet
|
||||
name = "Nova Edina backstreets"
|
||||
icon_state = "edina_alley"
|
||||
clockwork_warp_allowed = TRUE
|
||||
ambientsounds = MAINTENANCE
|
||||
always_unpowered = FALSE //Sure you can have power if you want
|
||||
|
||||
/area/edina/backstreet/supply
|
||||
name = "Supply Backstreets"
|
||||
icon_state = "edina_alley"
|
||||
clockwork_warp_allowed = TRUE
|
||||
ambientsounds = MAINTENANCE
|
||||
always_unpowered = FALSE //Sure you can have power if you want
|
||||
|
||||
/area/edina/backstreet/research
|
||||
name = "Research Backstreets"
|
||||
icon_state = "edina_alley"
|
||||
clockwork_warp_allowed = TRUE
|
||||
ambientsounds = MAINTENANCE
|
||||
always_unpowered = FALSE //Sure you can have power if you want
|
||||
|
||||
/area/edina/backstreet/med
|
||||
name = "Hospital Backstreets"
|
||||
icon_state = "edina_alley"
|
||||
clockwork_warp_allowed = TRUE
|
||||
ambientsounds = MAINTENANCE
|
||||
always_unpowered = FALSE //Sure you can have power if you want
|
||||
|
||||
///Nova Edina Streets///
|
||||
|
||||
|
||||
/area/edina/street
|
||||
name = "Nova Edina Streets"
|
||||
icon_state = "edina_street"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/primary
|
||||
name = "Nova Edina Streets"
|
||||
icon_state = "edina_street"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/primary/princess
|
||||
name = "Princess Street"
|
||||
icon_state = "edina_street"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/primary/progress
|
||||
name = "Progress Street"
|
||||
icon_state = "edina_street"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/primary/perimeter
|
||||
name = "Perimeter Way"
|
||||
icon_state = "edina_street"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/primary/servitor
|
||||
name = "Servitor Street"
|
||||
icon_state = "edina_street"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/secondary
|
||||
name = "Nova Edina Streets"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/secondary/command
|
||||
name = "Command Court"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/secondary/supply
|
||||
name = "Supply Street"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/secondary/castle
|
||||
name = "Castle Way"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/secondary/aux
|
||||
name = "Auxiliary Avenue"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection
|
||||
name = "Nova Edina Streets"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/princessprogress
|
||||
name = "Princess & Progress"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/princessperimeter
|
||||
name = "Princess & Perimeter"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/princessperimeter/north
|
||||
name = "Perimeter & N Princess"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/princessperimeter/south
|
||||
name = "Perimeter & S Princess"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/princessservitor
|
||||
name = "Servitor & Princess"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/servsuppaux
|
||||
name = "Servitor, Supply, & Auxiliary"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/intersection/progcastaux
|
||||
name = "Progress, Castle, & Auxiliary"
|
||||
icon_state = "edina_street2"
|
||||
ambientsounds = null //TODO:add ?
|
||||
|
||||
/area/edina/street/street2 //Just so laying areas is easier
|
||||
icon_state = "edina_street2"
|
||||
|
||||
/area/edina/protected //Prevents ice storms
|
||||
name = "Sheltered Nova Edina"
|
||||
|
||||
/////////////////Edina specific derivitives///////////////////////////////////
|
||||
|
||||
/area/edina/crew_quarters
|
||||
clockwork_warp_allowed = TRUE
|
||||
area_flags = BLOBS_ALLOWED | VALID_TERRITORY
|
||||
|
||||
/area/edina/crew_quarters/holo_atrium
|
||||
name = "Hologram atrium"
|
||||
|
||||
/area/edina/crew_quarters/store/clothes
|
||||
name = "Clothes Store"
|
||||
|
||||
/area/edina/crew_quarters/store/plushies
|
||||
name = "Plushies Store"
|
||||
|
||||
/area/edina/crew_quarters/store/pet
|
||||
name = "Pet Store"
|
||||
|
||||
/turf/open/floor/grass/snow/edina//But for now, we just handle what is outside, for light control etc.
|
||||
name = "Scottish snow"
|
||||
desc = "Looks super chilly!"
|
||||
|
||||
light_range = 3 //MIDNIGHT BLUE
|
||||
light_power = 0.15 //NOT PITCH BLACK, JUST REALLY DARK
|
||||
light_color = "#00111a" //The light can technically cycle on a timer worldwide, but no daynight cycle.
|
||||
baseturfs = /turf/open/floor/grass/snow/edina //If we explode or die somehow, we just make more! Ahahaha!!!
|
||||
tiled_dirt = 0 //NO TILESMOOTHING DIRT/DIRT SPAWNS OR SOME SHIT
|
||||
|
||||
//lets people build
|
||||
/turf/open/floor/grass/snow/edina/attackby(obj/item/C, mob/user, params)
|
||||
.=..()
|
||||
if(istype(C, /obj/item/stack/tile))
|
||||
for(var/obj/O in src)
|
||||
if(O.level == 1) //ex. pipes laid underneath a tile
|
||||
for(var/M in O.buckled_mobs)
|
||||
to_chat(user, "<span class='warning'>Someone is buckled to \the [O]! Unbuckle [M] to move \him out of the way.</span>")
|
||||
return
|
||||
var/obj/item/stack/tile/W = C
|
||||
if(!W.use(1))
|
||||
return
|
||||
var/turf/open/floor/T = PlaceOnTop(W.turf_type)
|
||||
T.icon_state = initial(T.icon_state)
|
||||
if(istype(W, /obj/item/stack/tile/light)) //TODO: get rid of this ugly check somehow
|
||||
var/obj/item/stack/tile/light/L = W
|
||||
var/turf/open/floor/light/F = T
|
||||
F.state = L.state
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, 1)
|
||||
|
||||
////////////////Mapping helper/////////////////////////
|
||||
/obj/effect/mapping_helpers/planet_z
|
||||
name = "planet z helper"
|
||||
layer = POINT_LAYER
|
||||
|
||||
/obj/effect/mapping_helpers/planet_z/Initialize()
|
||||
. = ..()
|
||||
var/datum/space_level/S = SSmapping.get_level(z)
|
||||
S.traits["Planet"] = TRUE //This probably doesn't work as I expect. But maybe!!
|
||||
@@ -57,6 +57,7 @@
|
||||
hole_size = LARGE_HOLE
|
||||
|
||||
/obj/structure/fence/attackby(obj/item/W, mob/user)
|
||||
var/current_stage = hole_size
|
||||
if(W.tool_behaviour == TOOL_WIRECUTTER)
|
||||
if(!cuttable)
|
||||
to_chat(user, "<span class='notice'>This section of the fence can't be cut.</span>")
|
||||
@@ -64,7 +65,6 @@
|
||||
if(invulnerable)
|
||||
to_chat(user, "<span class='notice'>This fence is too strong to cut through.</span>")
|
||||
return
|
||||
var/current_stage = hole_size
|
||||
if(current_stage >= MAX_HOLE_SIZE)
|
||||
to_chat(user, "<span class='notice'>This fence has too much cut out of it already.</span>")
|
||||
return
|
||||
@@ -86,6 +86,25 @@
|
||||
|
||||
update_cut_status()
|
||||
|
||||
else if(istype(W, /obj/item/stack/rods) && broken)
|
||||
if(!hole_size)
|
||||
to_chat(user, "<span class='info'>The [src] has no cuts in it!</span>")
|
||||
return
|
||||
var/obj/item/stack/rods/R = W
|
||||
if(do_after(user, CUT_TIME, target = src))
|
||||
if(current_stage == hole_size)
|
||||
switch(--hole_size)
|
||||
if(NO_HOLE)
|
||||
visible_message("<span class='notice'>\The [user] repairs \the [src] fully.</span>")
|
||||
to_chat(user, "<span class='info'>You repaire the [src] back to it's former glory.</span>")
|
||||
climbable = TRUE
|
||||
if(MEDIUM_HOLE)
|
||||
visible_message("<span class='notice'>\The [user] patches up \the [src].</span>")
|
||||
to_chat(user, "<span class='info'>The hole in \the [src] is reduced slightly, though someone could probably sill squeeze though if you don't patch it up more.</span>")
|
||||
climbable = FALSE
|
||||
R.use(1)
|
||||
update_cut_status()
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/structure/fence/proc/update_cut_status()
|
||||
|
||||
@@ -78,6 +78,12 @@
|
||||
deconstructible = FALSE
|
||||
layer = EDGED_TURF_LAYER
|
||||
|
||||
/obj/structure/fluff/lightpost/light
|
||||
desc = "That which most enchants the Edinians is the lighting by gas of the boulevards... These humble rows of lamps, shining with a clarity white and pure, have a marvelous effect upon the streets on Nova Edina. Adorned with a cheery garb, in tune with the festive spirits of the city."
|
||||
light_power = 0.8
|
||||
light_range = 10
|
||||
light_color = "#ffeeab"
|
||||
|
||||
/obj/structure/fluff/bus
|
||||
name = "bus"
|
||||
desc = "GO TO SCHOOL. READ A BOOK."
|
||||
|
||||
30
code/modules/clothing/gloves/mittens.dm
Normal file
@@ -0,0 +1,30 @@
|
||||
/obj/item/clothing/gloves/mittens
|
||||
desc = "These gloves will keep your hands warm!"
|
||||
name = "mittens"
|
||||
icon_state = "mittens"
|
||||
item_state = "wgloves"
|
||||
//item_color = "white"
|
||||
cold_protection = HANDS
|
||||
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
|
||||
resistance_flags = NONE
|
||||
|
||||
/obj/item/clothing/gloves/mittens/random
|
||||
|
||||
/obj/item/clothing/gloves/mittens/random/Initialize()
|
||||
..()
|
||||
var/colours = list("black", "yellow", "lightbrown", "brown", "orange", "red", "purple", "green", "blue", "kitten")
|
||||
var/picked_c = pick(colours)
|
||||
if(picked_c == "kitten")
|
||||
new /obj/item/clothing/gloves/mittens/kitten(loc)
|
||||
qdel(src)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
item_state = "[picked_c]gloves"
|
||||
//item_color = "[picked_c]"
|
||||
color = picked_c
|
||||
|
||||
/obj/item/clothing/gloves/mittens/kitten
|
||||
name = "Kitten mittens"
|
||||
desc = "These gloves will keep your hands warm, and feature cute kittens"
|
||||
icon_state = "kittenmittens"
|
||||
item_state = "blackgloves"
|
||||
//item_color = "black"
|
||||
@@ -511,7 +511,151 @@
|
||||
. |= MOBILITY_MOVE
|
||||
mobility_flags = .
|
||||
|
||||
//Christmas car spawner
|
||||
|
||||
/mob/living/simple_animal/jacq/car_spawner
|
||||
name = "Jacqueline cars terminal"
|
||||
icon_state = "jacq_cars_spawner"
|
||||
AIStatus = AI_OFF
|
||||
anchored = TRUE
|
||||
spawn_cars = TRUE
|
||||
active = FALSE
|
||||
|
||||
/mob/living/simple_animal/jacq/car_spawner/Destroy()
|
||||
visible_message("The <b>[src]</b> gives out an error sound, <span class='spooky'>\"Ey! Bugger off!\"</span>")
|
||||
fully_heal(FALSE)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/jacq/car_spawner/death()
|
||||
visible_message("The <b>[src]</b> gives out an error sound, <span class='spooky'>\"Ey! Bugger off!\"</span>")
|
||||
fully_heal(FALSE)
|
||||
|
||||
/mob/living/simple_animal/jacq/car_spawner/poof()
|
||||
if(!active)//if disabled, don't poof
|
||||
return
|
||||
var/datum/reagents/R = new/datum/reagents(100)//Hey, just in case.
|
||||
var/datum/effect_system/smoke_spread/chem/s = new()
|
||||
R.add_reagent(/datum/reagent/fermi/secretcatchem, 10)
|
||||
s.set_up(R, 0, loc)
|
||||
s.start()
|
||||
stopmove()
|
||||
health = 25
|
||||
|
||||
/mob/living/simple_animal/jacq/car_spawner/spawn_cars(mob/living/carbon/C)
|
||||
visible_message("<b>[src]</b> boots up and displays jacq's glowing smile, <span class='spooky'>\"Hallo there user! Merry Christmas! What ken type o' craft ken Ah offer ye? I can magic up a vectorcraft in manual, automatic or customise it if yer feeling technical.\"</span>")
|
||||
jacqrunes("Hallo there user! What ken type o' craft ken Ah offer ye? I can magic up a vectorcraft in manual, automatic or customise it if yer feeling technical.", C)
|
||||
|
||||
var/choices_reward = list("Manual", "Automatic", "Customise", "Are you a computer now Jacq?", "Nothing, thanks")
|
||||
var/choice_reward = input(usr, "Merry Trick_or_Treat.exe initiated!", "Merry Trick_or_Treat.exe initiated!") in choices_reward
|
||||
|
||||
switch(choice_reward)
|
||||
if("Manual")
|
||||
visible_message("The <b>[src]</b> makes a magical booping sound, <span class='spooky'>\"Great choice! 'Ere's yer car.\"</span>")
|
||||
jacqrunes("Great choice! 'Ere's yer car.", C)
|
||||
new /obj/vehicle/sealed/vectorcraft(loc)
|
||||
if("Automatic")
|
||||
visible_message("<b>[src]</b> makes a magical booping sound, <span class='spooky'>\"'Ere's yer car. Not as fast as an automatic mind.\"</span>")
|
||||
jacqrunes("'Ere's yer car. Not as fast as an automatic mind.", C)
|
||||
new /obj/vehicle/sealed/vectorcraft/auto(loc)
|
||||
if("Are you a computer now Jacq?")
|
||||
visible_message("<b>[src]</b> makes a frustrated error sound, <span class='spooky'>\"Nae, are ye daft? Ah built these thingies tae magic up cars fer ye. Well, I got a speccy four eyes tae do it fer me, but me names on it like cause it was me idea.\"</span>")
|
||||
jacqrunes("Nae, are ye daft? Ah built these thingies tae magic up cars fer ye. Well, I got a speccy four eyes tae do it fer me, but me names on it like cause it was me idea.", C)
|
||||
if("Customise")
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Arright, Manual or Automatic?\"</span>")
|
||||
var/choices_transm = list("Manual", "Automatic")
|
||||
var/choice_transm = input(usr, "Choose transmission", "Choose transmission") in choices_transm
|
||||
var/points = 0
|
||||
var/obj/vehicle/sealed/vectorcraft/VC
|
||||
switch(choice_transm)
|
||||
if("Manual")
|
||||
VC = new /obj/vehicle/sealed/vectorcraft(loc)
|
||||
if("Automatic")
|
||||
VC = new /obj/vehicle/sealed/vectorcraft/auto(loc)
|
||||
points += 500
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Maximum acceleration? (default [VC.max_acceleration], max 10)\"</span>")
|
||||
var/max_accl = text2num(input(usr, "Maximum acceleration? (default [VC.max_acceleration], max 10)", "[VC.max_acceleration]"))
|
||||
max_accl = clamp(max_accl, 0, 10)
|
||||
VC.max_acceleration = max_accl
|
||||
VC.i_m_acell = max_accl
|
||||
points += max_accl*10
|
||||
|
||||
/* This is internally used
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Acceleration step? (default 0.3, max 1)\"</span>")
|
||||
var/max_accl_s = text2num(input(usr, "Acceleration step? (default 0.3, max 1)", "[VC.accel_step]"))
|
||||
max_accl_s = clamp(max_accl_s, 0, 1)
|
||||
VC.max_acceleration = max_accl_s
|
||||
points += max_accl_s*100
|
||||
*/
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Acceleration? (default [VC.acceleration], max 2)\"</span>")
|
||||
var/accl = text2num(input(usr, "Acceleration? (default [VC.acceleration], max 2)", "[VC.acceleration]"))
|
||||
accl = clamp(accl, 0, 2)
|
||||
VC.acceleration = accl
|
||||
VC.i_acell = accl
|
||||
points += accl*100
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Maximum deceleration? (default [VC.max_deceleration], max 15)\"</span>")
|
||||
var/deaccl = text2num(input(usr, "Max_deceleration? (default [VC.max_deceleration], max 15)", "[VC.max_deceleration]"))
|
||||
deaccl = clamp(deaccl, 0, 15)
|
||||
VC.max_deceleration = deaccl
|
||||
VC.i_m_decell = deaccl
|
||||
points += deaccl*10
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Maximum velocity? (default [VC.max_velocity], max 200)\"</span>")
|
||||
var/m_velo = text2num(input(usr, "Maximum velocity? (default [VC.max_velocity], max 200)", "[VC.max_velocity]"))
|
||||
m_velo = clamp(m_velo, 0, 200)
|
||||
VC.max_velocity = m_velo
|
||||
points += m_velo
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Boost power? (default [VC.boost_power], max 200)\"</span>")
|
||||
var/boost = text2num(input(usr, "Boost power? (default [VC.boost_power], max 200)", "[VC.boost_power]"))
|
||||
boost = clamp(boost, 0, 200)
|
||||
VC.boost_power = boost
|
||||
VC.i_boost = boost
|
||||
points += boost
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Health points? (default [VC.max_integrity], max 1000)\"</span>")
|
||||
var/health = text2num(input(usr, "Health points? (default [VC.max_integrity], max 1000)", "[VC.max_integrity]"))
|
||||
health = clamp(health, 0, 500)
|
||||
VC.max_integrity = health
|
||||
points += health/2
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Arright, 'ow do ye want it tae look?\"</span>")
|
||||
var/choices_icon = list("Racer", "Truck", "Cyber", "Ambulance", "Pod", "Clown")
|
||||
var/choice_icon = input(usr, "Choose body", "Choose body") in choices_icon
|
||||
switch(choice_icon)
|
||||
if("Truck")
|
||||
VC.icon_state = "truck"
|
||||
|
||||
if("Cyber")
|
||||
VC.icon_state = "cyber"
|
||||
|
||||
if("Ambulance")
|
||||
VC.icon_state = "ambutruck"
|
||||
|
||||
if("Pod")
|
||||
VC.icon_state = "engineering_pod"
|
||||
|
||||
if("Clown")
|
||||
VC.icon_state = "clowncar"
|
||||
|
||||
visible_message("The <b>[src]</b> pings, <span class='spooky'>\"Finally; what name are ye gonna give it?\"</span>")
|
||||
var/choice_name = input(usr, "Pick a name!", "")
|
||||
choice_name += " (Points cost:[points])"
|
||||
VC.name = choice_name
|
||||
|
||||
visible_message("The <b>[src]</b> gives a final boop, <span class='spooky'>\"There ye be, enjoy!\"</span>")
|
||||
|
||||
if("How do Automatics work?")
|
||||
visible_message("The image of Jacq on the <b>[src]</b> smiles, <span class='spooky'>\"Hold wasd to gain speed in a direction, c to enable/disable the clutch, 1 2 3 4 to change gears (help is gear 1, disarm is gear 2, grab is gear 3 and harm is gear 4) while holding a direction (make sure the clutch is enabled when you change gears, you should hear a sound when you've successfully changed gears), r to toggle handbrake, hold alt for brake and press shift for boost (the machine will beep when the boost is recharged)! If you hear an ebbing sound like \"brbrbrbrbr\" you need to gear down, the whining sound means you need to gear up. Hearing a pleasant \"whumwhumwhum\" is optimal gearage! It can be a lil slow to start, so make sure you're in the 1st gear, andusing a boost to get you started is a good idea. If you've got a good speed you'll likely never need to dip down to gear 1 again, and make sure to hold the acceleration pedal down while changing gears (hold a direction). 1st gear is for slow movement, and it's a good idea to mvoe to 2nd gear as quick as you can, you can coldstart a car from gear one by slowly moving, then using the boost to jump you up to gear 2 speeds. The upper gears are for unlimiting your top speed.\"</span>")
|
||||
jacqrunes("They're a bit tricky, aye. Basically;", C)
|
||||
if("Nothing, thanks")
|
||||
visible_message("The image of Jacq on the <b>[src]</b> shrugs, <span class='spooky'>\"Suit yerself.\"</span>")
|
||||
jacqrunes("Suit yerself.", C)
|
||||
|
||||
visible_message("The <b>[src]</b> beeps, <span class='spooky'>\"Oh and look after the crafts, aye? They can get a wee bit... explosive if banged up a tad too much. They move slower damaged too like. Ye can repair 'em with the welders o'er there.\"</span>")
|
||||
jacqrunes("Oh and look after the crafts, aye? They can get a wee bit... explosive if banged up a tad too much. They move slower damaged too like. Ye can repair 'em with the welders o'er there. ", C)
|
||||
|
||||
/obj/item/clothing/head/hardhat/pumpkinhead/jaqc
|
||||
name = "Jacq o' latern"
|
||||
|
||||
@@ -13,3 +13,24 @@
|
||||
desc = "A keyring with a small steel key, and a pink fob reading \"Pussy Wagon\"."
|
||||
icon_state = "keyjanitor"
|
||||
|
||||
//START VECTORCARKEYS
|
||||
/obj/item/key/CMO
|
||||
desc = "A keyring with a small steel key to the CMO\'s race hovercar."
|
||||
|
||||
/obj/item/key/RD
|
||||
desc = "A keyring with a small steel key to the RD\'s race hovercar."
|
||||
|
||||
/obj/item/key/hop
|
||||
desc = "A keyring with a small steel key to the HOP\'s race hovercar."
|
||||
|
||||
/obj/item/key/hos
|
||||
desc = "A keyring with a small steel key to the HOS\'s race hovercar."
|
||||
|
||||
/obj/item/key/CE
|
||||
desc = "A keyring with a small steel key to the CE\'s race hovercar."
|
||||
|
||||
/obj/item/key/QM
|
||||
desc = "A keyring with a small steel key to the QM\'s race hovercar."
|
||||
|
||||
/obj/item/key/CAPT
|
||||
desc = "A keyring with a small steel key to the Captain\'s race hovercar."
|
||||
|
||||
@@ -47,6 +47,10 @@ map spookystation
|
||||
minplayers 150
|
||||
endmap
|
||||
|
||||
map festivestation
|
||||
minplayers 150
|
||||
endmap
|
||||
|
||||
map multiz_debug
|
||||
endmap
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 12 KiB |
BIN
icons/obj/sofaclean.dmi
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 42 KiB |
60
modular_citadel/code/modules/festive/32x64.dm
Normal file
@@ -0,0 +1,60 @@
|
||||
//Festive Light Poles
|
||||
|
||||
/obj/structure/streetdecor/lamp
|
||||
name = "lamp pole"
|
||||
desc = "A metal pole with latern. Very effective at lighting up the cold streets on a breezy night."
|
||||
layer = 4
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
light_power = 1.4
|
||||
light_range = 15
|
||||
light_color = "#ffffdd"
|
||||
icon = 'modular_citadel/code/modules/festive/32x64icons.dmi'
|
||||
icon_state = "lamp_post"
|
||||
max_integrity = 9999999
|
||||
|
||||
/obj/structure/streetdecor/lampfestive
|
||||
name = "festive lamp pole"
|
||||
desc = "A metal pole with latern and christmas decorations. Very effective at warming up the spirits of people."
|
||||
layer = 4
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
light_power = 1.6
|
||||
light_range = 15
|
||||
light_color = "#ffffdd"
|
||||
icon = 'modular_citadel/code/modules/festive/32x64icons.dmi'
|
||||
icon_state = "lamp_post_festive"
|
||||
max_integrity = 9999999
|
||||
|
||||
/obj/structure/streetdecor/wreathpole
|
||||
name = "wreath pole"
|
||||
desc = "A metal pole with a fancy wreath."
|
||||
layer = 4
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
icon = 'modular_citadel/code/modules/festive/32x64icons.dmi'
|
||||
icon_state = "wreath_post"
|
||||
|
||||
/obj/structure/streetdecor/welcomesign
|
||||
name = "Welcome sign"
|
||||
desc = "A tartan trapped sign welcoming you to Nova Edina."
|
||||
layer = 4
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
|
||||
icon = 'modular_citadel/code/modules/festive/city_sign.dmi'
|
||||
icon_state = "sign"
|
||||
|
||||
/obj/structure/streetdecor/bigtree
|
||||
name = "Big festive tree"
|
||||
desc = "Big tree. Big heck. Big festive cheer!"
|
||||
layer = 4
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
light_power = 2
|
||||
light_range = 30
|
||||
light_color = "#ffeeab"
|
||||
icon = 'modular_citadel/code/modules/festive/bigtree.dmi'
|
||||
icon_state = "bigtree"
|
||||
max_integrity = 9999999
|
||||
BIN
modular_citadel/code/modules/festive/32x64icons.dmi
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
modular_citadel/code/modules/festive/alleywaybricks.dmi
Normal file
|
After Width: | Height: | Size: 753 B |
BIN
modular_citadel/code/modules/festive/bigtree.dmi
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
modular_citadel/code/modules/festive/blue_brick_wall.dmi
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
modular_citadel/code/modules/festive/blue_brick_window.dmi
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
modular_citadel/code/modules/festive/city_sign.dmi
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
modular_citadel/code/modules/festive/cobblestone.dmi
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
53
modular_citadel/code/modules/festive/festive_decals.dm
Normal file
@@ -0,0 +1,53 @@
|
||||
/obj/effect/decal/festive
|
||||
name = "Festive item!"
|
||||
desc = "It fills you with holiday cheer."
|
||||
icon = 'modular_citadel/code/modules/festive/festive_objects.dmi'
|
||||
icon_state = "holly"
|
||||
plane = -5 //makes the graffiti visible over a wall. I think
|
||||
|
||||
/obj/effect/decal/festive/holly
|
||||
name = "Holly"
|
||||
desc = "A prickly, yet cheerful flora laden with ripe berries of festive joy."
|
||||
|
||||
/obj/effect/decal/festive/fairylights
|
||||
name = "Fairy lights"
|
||||
desc = "A strand of smol glowing lights, almost as if the lights themselves were faries."
|
||||
icon_state = "y_fairylights"
|
||||
light_power = 1.6
|
||||
light_range = 3
|
||||
light_color = "#ffeeab"
|
||||
|
||||
/obj/effect/decal/festive/mistletoe
|
||||
name = "Mistletoe"
|
||||
desc = "A plant that causes 2 victims underneath to engage in a smooch!"
|
||||
icon_state = "mistletoe"
|
||||
|
||||
/obj/effect/decal/festive/christmas_reef
|
||||
name = "Christmas reef"
|
||||
desc = "A ring reef of festive plants."
|
||||
icon_state = "christmas_reef"
|
||||
|
||||
/obj/effect/decal/festive/green_stockings
|
||||
name = "Green stockings"
|
||||
desc = "3 wee booties out on a row, hoping for presents from the fat man's tow."
|
||||
icon_state = "green_stockings"
|
||||
|
||||
/obj/effect/decal/festive/red_stockings
|
||||
name = "Red stockings"
|
||||
desc = "Santa seems to enjoy socks a lot, huh."
|
||||
icon_state = "red_stockings"
|
||||
|
||||
/obj/effect/decal/festive/large_red_stocking
|
||||
name = "Large red stocking"
|
||||
desc = "A big hecking chonker of a sock, a braisen display of greed, or simply the sock of a large man?"
|
||||
icon_state = "large_red_stocking"
|
||||
|
||||
/obj/effect/decal/festive/large_green_stocking
|
||||
name = "Large green stocking"
|
||||
desc = "They say his sock grew 3 sizes that day."
|
||||
icon_state = "large_green_stocking"
|
||||
|
||||
/obj/effect/decal/festive/christmas_ivy_string
|
||||
name = "Festive ivy"
|
||||
desc = "In a recent study performed by the local university, it was found that ivy doesn't grow to live and thrive, but instead to spread festive cheer. You cannot help but feel the holiday spirit wrangle around you fantastically." //I am super tired and I wordswordswords
|
||||
icon_state = "christmas_ivy_string"
|
||||
7
modular_citadel/code/modules/festive/festive_notes.dm
Normal file
@@ -0,0 +1,7 @@
|
||||
/obj/item/paper/fluff/festive/note_for_qm
|
||||
name = "To the Quartermaster(s)"
|
||||
info = "Seeing as this is an event for employees spanning the entire sector, it's possible you may not be the only Quartermaster present today and you'll have to share this office should that be the case. Fortunately, you shouldn't need to share a locker - you shall find some additional lockers with quartermaster access in your department's locker room. Should you require additional lockers however, you will need to contact Central Command directly.<br>Additionally, the successful capture of a Syndicate freighter has left us with a surplus of Donksoft weaponry. Considering they pose far less of a concern than their real counterparts, your department has been put in charge of their distribution. Just be sure not to keep them all for yourself - 'tis the season of giving, after all.<br>- Administrator Roux"
|
||||
|
||||
/obj/item/paper/fluff/festive/note_for_chap
|
||||
name = "A letter to the Chaplain"
|
||||
info = "Chaplain,<br>You might not be alone in your duties today. Seeing as these are special circumstances, you will find additional supplies with which to arm your fellow clergymen.<br>Do we expect you to need to use what's inside? Thankfully, no. Alas, should malicious occult forces strike, we want your compatriots to be equipped to face them.<br>At the very least, don't just give these out to anyone. Every time I see an assistant running around with a holy 'sord', I can feel my insides crumble...<br>Soulstone Obelisk<br>Department of Higher Dimensional Affairs"
|
||||
BIN
modular_citadel/code/modules/festive/festive_objects.dmi
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
modular_citadel/code/modules/festive/grey_brick_wall.dmi
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
modular_citadel/code/modules/festive/grey_brick_window.dmi
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
BIN
modular_citadel/code/modules/festive/grey_panel_wall.dmi
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
26
modular_citadel/code/modules/festive/privacy.dm
Normal file
@@ -0,0 +1,26 @@
|
||||
//How to use:
|
||||
//Set the name of off the the objects you want controlled by 1 button to the same name
|
||||
//Set the tar_name of this to the same name
|
||||
//Press the button in game.
|
||||
|
||||
/obj/machinery/button/privacy
|
||||
name = "Privacy toggle"
|
||||
var/tar_name
|
||||
var/tint_objs = list()
|
||||
|
||||
/obj/machinery/button/privacy/setup_device()
|
||||
if(!device)
|
||||
for(var/obj/O in get_area(src))
|
||||
if(O.name == tar_name)
|
||||
tint_objs += O
|
||||
..()
|
||||
|
||||
/obj/machinery/button/privacy/attack_hand(mob/user)
|
||||
.=..()
|
||||
for(var/obj/O in tint_objs)
|
||||
if(O.opacity)
|
||||
O.color = "#919191"
|
||||
O.opacity = 0
|
||||
else
|
||||
O.opacity = 1
|
||||
O.color = "#000000"
|
||||
BIN
modular_citadel/code/modules/festive/rails.dmi
Normal file
|
After Width: | Height: | Size: 707 B |
BIN
modular_citadel/code/modules/festive/red_brick_wall.dmi
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
modular_citadel/code/modules/festive/red_brick_window.dmi
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
modular_citadel/code/modules/festive/sidewalk.dmi
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
modular_citadel/code/modules/festive/stairs.dmi
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
modular_citadel/code/modules/festive/streetdecals.dmi
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
BIN
modular_citadel/code/modules/festive/trainplatform.dmi
Normal file
|
After Width: | Height: | Size: 506 B |
BIN
modular_citadel/code/modules/festive/trainplatformedges.dmi
Normal file
|
After Width: | Height: | Size: 444 B |
1671
modular_citadel/code/modules/festive/turfs.dm
Normal file
114
modular_citadel/code/modules/festive/wheelchair.dm
Normal file
@@ -0,0 +1,114 @@
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/Initialize()
|
||||
. = ..()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/post_unbuckle_mob(mob/living/M)
|
||||
remove_occupant(M)
|
||||
M.pixel_x = 0
|
||||
M.pixel_y = 0
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/post_buckle_mob(mob/living/M)
|
||||
add_occupant(M)
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/move_car()
|
||||
.=..()
|
||||
driver.pixel_x = pixel_x
|
||||
driver.pixel_y = pixel_y
|
||||
driver.forceMove(src.loc)
|
||||
driver.setDir(dir)
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/mob_enter(mob/living/M)
|
||||
if(!istype(M))
|
||||
return FALSE
|
||||
M.visible_message("<span class='notice'>[M] climbs into \the [src]!</span>")
|
||||
M.forceMove(src.loc)
|
||||
add_occupant(M)
|
||||
if(!driver)
|
||||
driver = M
|
||||
if(gear != "auto")
|
||||
gear = driver.a_intent
|
||||
start_engine()
|
||||
driver.pixel_x = pixel_x
|
||||
driver.pixel_y = pixel_y
|
||||
return TRUE
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/mob_exit(mob/living/M)
|
||||
.=..()
|
||||
driver.pixel_x = 0
|
||||
driver.pixel_y = 0
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair
|
||||
name = "Hoverchair"
|
||||
desc = "A chair with big hoverpads. It looks like you can move in this on your own."
|
||||
icon = 'icons/obj/vehicles.dmi'
|
||||
icon_state = "wheelchair"
|
||||
layer = OBJ_LAYER
|
||||
max_integrity = 100
|
||||
armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 30) //Wheelchairs aren't super tough yo
|
||||
canmove = TRUE
|
||||
density = FALSE //Thought I couldn't fix this one easily, phew
|
||||
|
||||
|
||||
max_acceleration = 1.5
|
||||
accel_step = 0.5
|
||||
acceleration = 0.35
|
||||
max_deceleration = 1
|
||||
max_velocity = 20
|
||||
boost_power = 15
|
||||
gear = "auto"
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/ComponentInitialize() //Since it's technically a chair I want it to have chair properties
|
||||
. = ..()
|
||||
AddComponent(/datum/component/simple_rotation,ROTATION_ALTCLICK | ROTATION_CLOCKWISE, CALLBACK(src, .proc/can_user_rotate),CALLBACK(src, .proc/can_be_rotated),null)
|
||||
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/Destroy()
|
||||
if(has_buckled_mobs())
|
||||
var/mob/living/carbon/H = buckled_mobs[1]
|
||||
unbuckle_mob(H)
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/move_car()
|
||||
. = ..()
|
||||
cut_overlays()
|
||||
playsound(src, 'sound/effects/roll.ogg', 75, 1)
|
||||
if(has_buckled_mobs())
|
||||
handle_rotation_overlayed()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/post_buckle_mob(mob/living/user)
|
||||
. = ..()
|
||||
handle_rotation_overlayed()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/post_unbuckle_mob()
|
||||
. = ..()
|
||||
cut_overlays()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/setDir(newdir)
|
||||
..()
|
||||
handle_rotation(newdir)
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/proc/handle_rotation(direction)
|
||||
if(has_buckled_mobs())
|
||||
handle_rotation_overlayed()
|
||||
for(var/m in buckled_mobs)
|
||||
var/mob/living/buckled_mob = m
|
||||
buckled_mob.setDir(direction)
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/proc/handle_rotation_overlayed()
|
||||
cut_overlays()
|
||||
var/image/V = image(icon = icon, icon_state = "wheelchair_overlay", layer = FLY_LAYER, dir = src.dir)
|
||||
add_overlay(V)
|
||||
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/proc/can_be_rotated(mob/living/user)
|
||||
return TRUE
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/rideable/wheelchair/proc/can_user_rotate(mob/living/user)
|
||||
var/mob/living/L = driver
|
||||
if(istype(L))
|
||||
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
||||
return FALSE
|
||||
if(isobserver(user) && CONFIG_GET(flag/ghost_interaction))
|
||||
return TRUE
|
||||
return FALSE
|
||||
BIN
modular_citadel/code/modules/festive/white_alleywaybricks.dmi
Normal file
|
After Width: | Height: | Size: 753 B |
BIN
modular_citadel/code/modules/festive/white_brick_wall.dmi
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
modular_citadel/code/modules/festive/white_brick_window.dmi
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
modular_citadel/code/modules/festive/wooden.dmi
Normal file
|
After Width: | Height: | Size: 423 B |
@@ -27,9 +27,21 @@
|
||||
var/gear
|
||||
var/boost_cooldown
|
||||
|
||||
//Changes for custom
|
||||
var/i_m_acell
|
||||
var/i_m_decell
|
||||
var/i_boost
|
||||
var/i_acell
|
||||
|
||||
var/mob/living/carbon/human/driver
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/Initialize()
|
||||
..()
|
||||
i_m_acell = max_acceleration
|
||||
i_m_decell = max_deceleration
|
||||
i_boost = boost_power
|
||||
i_acell = acceleration
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/mob_enter(mob/living/M)
|
||||
if(!driver)
|
||||
driver = M
|
||||
|
||||
147
modular_citadel/code/modules/vectorcrafts/vectortruck.dm
Normal file
@@ -0,0 +1,147 @@
|
||||
/obj/vehicle/sealed/vectorcraft/boot
|
||||
name = "Hovertruck"
|
||||
desc = "An all-terrain vehicle built for traversing rough terrain with ease. This one comes equipt with a sizeable boot that can store up to 3 items!"
|
||||
icon_state = "truck"
|
||||
max_integrity = 200
|
||||
var/obj/structure/boot = list()//Trunkspace of craft
|
||||
var/boot_size = 3
|
||||
max_acceleration = 3
|
||||
accel_step = 0.15
|
||||
acceleration = 0.3
|
||||
max_deceleration = 5
|
||||
max_velocity = 80
|
||||
boost_power = 20
|
||||
enginesound_delay = 0
|
||||
var/static/radial_heal = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_heal")
|
||||
var/static/radial_eject_car = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_car")
|
||||
var/static/radial_eject_key = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_key")
|
||||
var/static/radial_eject_boot = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject_boot")
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/MouseDrop_T(atom/dropping, mob/user)
|
||||
if(istype(dropping, /obj/))
|
||||
if(LAZYLEN(boot) < boot_size)
|
||||
boot += dropping
|
||||
to_chat(user, "<span class='notice'>You add the [dropping] to the [src]'s boot!</span>")
|
||||
return TRUE
|
||||
if(iscarbon(dropping))
|
||||
var/mob/living/carbon/M = dropping
|
||||
mob_try_enter(M)
|
||||
to_chat(user, "<span class='notice'>You put [M] into the [src]!</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/proc/eject_boot()
|
||||
for(var/obj/o in boot)
|
||||
o.forceMove(drop_location())
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance //weewoos have to go fast
|
||||
name = "Ambulance"
|
||||
var/obj/machinery/sleeper/Sl
|
||||
max_acceleration = 3
|
||||
accel_step = 0.15
|
||||
acceleration = 0.3
|
||||
max_deceleration = 5
|
||||
max_velocity = 100
|
||||
boost_power = 25
|
||||
enginesound_delay = 0
|
||||
icon_state = "ambutruck"
|
||||
var/weewoo = FALSE
|
||||
var/weewoocount = 0
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance/Initialize()
|
||||
. = ..()
|
||||
Sl = new /obj/machinery/sleeper
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance/process()
|
||||
..()
|
||||
if(weewoo)
|
||||
weewoo()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance/MouseDrop_T(mob/living/L, mob/user)
|
||||
if(isliving(L))
|
||||
Sl.close_machine(L)
|
||||
to_chat(user, "<span class='notice'>You put [L] into the [src]'s emergency sleeper!</span>")
|
||||
return TRUE
|
||||
..()
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance/proc/weewoo()
|
||||
if(weewoocount>10)
|
||||
weewoocount = 0
|
||||
|
||||
return
|
||||
weewoo++
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance/ui_interact(mob/user) // taken from the microwave/grinder
|
||||
. = ..()
|
||||
|
||||
var/list/options = list()
|
||||
|
||||
if(isAI(user))
|
||||
options["radial_eject_car"] = radial_eject_car
|
||||
else
|
||||
if(vector["y"] == 0 && vector["x"] == 0)
|
||||
options["radial_eject_car"] = radial_eject_car
|
||||
if(Sl.occupant)
|
||||
options["radial_heal"] = radial_heal
|
||||
if(inserted_key)
|
||||
if(!driver)
|
||||
options["radial_eject_key"] = radial_eject_key
|
||||
if(length(boot))
|
||||
options["radial_eject_boot"] = radial_eject_boot
|
||||
|
||||
var/choice
|
||||
|
||||
if(length(options) < 1)
|
||||
return
|
||||
if(length(options) == 1)
|
||||
for(var/key in options)
|
||||
choice = key
|
||||
else
|
||||
choice = show_radial_menu(user, src, options, require_near = !issilicon(user))
|
||||
|
||||
// post choice verification
|
||||
if(isAI(user) || !user.canUseTopic(src, !issilicon(user)))
|
||||
return
|
||||
|
||||
switch(choice)
|
||||
if("eject_car")
|
||||
if(driver)
|
||||
remove_occupant(driver)
|
||||
else
|
||||
for(var/mob/m in occupants)
|
||||
remove_occupant(m)
|
||||
if("radial_heal")
|
||||
Sl.ui_interact(user)
|
||||
if("eject_key")
|
||||
to_chat(user, "<span class='notice'>You remove \the [inserted_key] from \the [src].</span>")
|
||||
inserted_key.forceMove(drop_location())
|
||||
user.put_in_hands(inserted_key)
|
||||
inserted_key = null
|
||||
if("eject_boot")
|
||||
eject_boot(user)
|
||||
|
||||
|
||||
/obj/vehicle/sealed/vectorcraft/boot/ambulance/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/reagent_containers/sleeper_buffer))
|
||||
var/obj/item/reagent_containers/sleeper_buffer/SB = I
|
||||
if((SB.reagents.total_volume + Sl.reagents.total_volume) < Sl.reagents.maximum_volume)
|
||||
SB.reagents.trans_to(Sl.reagents, SB.reagents.total_volume)
|
||||
visible_message("[user] places the [SB] into the [src].")
|
||||
qdel(SB)
|
||||
return
|
||||
else
|
||||
SB.reagents.trans_to(Sl.reagents, SB.reagents.total_volume)
|
||||
visible_message("[user] adds as much as they can to the [src] from the [SB].")
|
||||
return
|
||||
if(istype(I, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/RC = I
|
||||
if(RC.reagents.total_volume == 0)
|
||||
to_chat(user, "<span class='notice'>The [I] is empty!</span>")
|
||||
for(var/datum/reagent/R in RC.reagents.reagent_list)
|
||||
if((obj_flags & EMAGGED) || (allowed(usr)))
|
||||
break
|
||||
if(!istype(R, /datum/reagent/medicine))
|
||||
visible_message("The [src] gives out a hearty boop and rejects the [I]. The Sleeper's screen flashes with a pompous \"Medicines only, please.\"")
|
||||
return
|
||||
RC.reagents.trans_to(Sl.reagents, 1000)
|
||||
visible_message("[user] adds as much as they can to the [src] from the [I].")
|
||||
return
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
// BEGIN_INCLUDE
|
||||
#include "_maps\_basemap.dm"
|
||||
#include "_maps\map_files\FestiveBall\doorButtonOrganizer.dm"
|
||||
#include "code\_compile_options.dm"
|
||||
#include "code\world.dm"
|
||||
#include "code\__DEFINES\_auxtools.dm"
|
||||
@@ -744,6 +745,7 @@
|
||||
#include "code\datums\weather\weather_types\acid_rain.dm"
|
||||
#include "code\datums\weather\weather_types\ash_storm.dm"
|
||||
#include "code\datums\weather\weather_types\floor_is_lava.dm"
|
||||
#include "code\datums\weather\weather_types\ice_storm.dm"
|
||||
#include "code\datums\weather\weather_types\radiation_storm.dm"
|
||||
#include "code\datums\weather\weather_types\snow_storm.dm"
|
||||
#include "code\datums\weather\weather_types\void_storm.dm"
|
||||
@@ -786,6 +788,7 @@
|
||||
#include "code\game\area\Space_Station_13_areas.dm"
|
||||
#include "code\game\area\areas\away_content.dm"
|
||||
#include "code\game\area\areas\centcom.dm"
|
||||
#include "code\game\area\areas\edina.dm"
|
||||
#include "code\game\area\areas\holodeck.dm"
|
||||
#include "code\game\area\areas\mining.dm"
|
||||
#include "code\game\area\areas\shuttles.dm"
|
||||
@@ -2008,6 +2011,7 @@
|
||||
#include "code\modules\clothing\gloves\boxing.dm"
|
||||
#include "code\modules\clothing\gloves\color.dm"
|
||||
#include "code\modules\clothing\gloves\miscellaneous.dm"
|
||||
#include "code\modules\clothing\gloves\mittens.dm"
|
||||
#include "code\modules\clothing\gloves\ring.dm"
|
||||
#include "code\modules\clothing\gloves\tacklers.dm"
|
||||
#include "code\modules\clothing\head\_head.dm"
|
||||
@@ -3754,6 +3758,12 @@
|
||||
#include "modular_citadel\code\modules\custom_loadout\read_from_file.dm"
|
||||
#include "modular_citadel\code\modules\eventmaps\Spookystation\halloweenPersiWork.dm"
|
||||
#include "modular_citadel\code\modules\eventmaps\Spookystation\JTGSZwork.dm"
|
||||
#include "modular_citadel\code\modules\festive\32x64.dm"
|
||||
#include "modular_citadel\code\modules\festive\festive_decals.dm"
|
||||
#include "modular_citadel\code\modules\festive\festive_notes.dm"
|
||||
#include "modular_citadel\code\modules\festive\privacy.dm"
|
||||
#include "modular_citadel\code\modules\festive\turfs.dm"
|
||||
#include "modular_citadel\code\modules\festive\wheelchair.dm"
|
||||
#include "modular_citadel\code\modules\mentor\dementor.dm"
|
||||
#include "modular_citadel\code\modules\mentor\follow.dm"
|
||||
#include "modular_citadel\code\modules\mentor\mentor.dm"
|
||||
@@ -3795,5 +3805,6 @@
|
||||
#include "modular_citadel\code\modules\vectorcrafts\vector_process.dm"
|
||||
#include "modular_citadel\code\modules\vectorcrafts\vectorcar_heads.dm"
|
||||
#include "modular_citadel\code\modules\vectorcrafts\vectorcraft.dm"
|
||||
#include "modular_citadel\code\modules\vectorcrafts\vectortruck.dm"
|
||||
#include "modular_citadel\code\modules\vectorcrafts\vectorvariants.dm"
|
||||
// END_INCLUDE
|
||||
|
||||