Merge pull request #12987 from AnturK/turrets

Removes gun_turret type and makes turret controls buildable
This commit is contained in:
Remie Richards
2015-11-27 20:52:59 +00:00
15 changed files with 229 additions and 396 deletions
@@ -6468,10 +6468,10 @@
"cut" = (/obj/structure/table,/obj/item/weapon/circular_saw,/obj/item/weapon/cautery{pixel_x = 4},/obj/item/weapon/surgical_drapes,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape)
"cuu" = (/obj/structure/table/optable,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape)
"cuv" = (/turf/simulated/wall/shuttle,/area/shuttle/escape)
"cuw" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cuw" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cux" = (/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cuy" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/shuttle/syndicate)
"cuz" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cuz" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cuA" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cuB" = (/obj/machinery/computer/shuttle/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cuC" = (/obj/structure/table,/obj/machinery/button/door{id = "syndieshutters"; name = "remote shutter control"; req_access_txt = "150"},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
@@ -6491,7 +6491,7 @@
"cuQ" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cuR" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cuS" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cuT" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cuT" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cuU" = (/obj/machinery/atmospherics/pipe/simple/cyan/visible{dir = 9},/turf/simulated/floor/plasteel,/area/atmos)
"cuV" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cuW" = (/obj/structure/bed/stool,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
+3 -3
View File
@@ -1,9 +1,9 @@
"aaa" = (/turf/space,/area/space)
"aab" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_n"; name = "north of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"aac" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aac" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aad" = (/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"aae" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/shuttle/syndicate)
"aaf" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aaf" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aag" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aah" = (/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aai" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
@@ -24,7 +24,7 @@
"aax" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aay" = (/obj/structure/lattice,/turf/space,/area/space)
"aaz" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aaA" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"aaA" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"aaB" = (/obj/structure/lattice/catwalk,/turf/space,/area/space)
"aaC" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aaD" = (/obj/structure/closet/syndicate/nuclear,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
+3 -3
View File
@@ -1,8 +1,8 @@
"aaa" = (/turf/space,/area/space)
"aab" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aab" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aac" = (/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"aad" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/shuttle/syndicate)
"aae" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aae" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aaf" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aag" = (/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aah" = (/obj/structure/table,/obj/item/device/flashlight/lamp{pixel_x = 4; pixel_y = 1},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
@@ -23,7 +23,7 @@
"aaw" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aax" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aay" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aaz" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"aaz" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"aaA" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aaB" = (/obj/structure/closet/syndicate/nuclear,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"aaC" = (/obj/structure/bed/stool,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
@@ -184,7 +184,7 @@
"adB" = (/obj/structure/cable/blue{tag = "icon-4-8"; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plasteel/black,/area/aisat)
"adC" = (/obj/structure/cable/blue{tag = "icon-4-8"; icon_state = "4-8"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance_hatch{req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/aisat)
"adD" = (/obj/structure/cable/blue{tag = "icon-1-8"; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/aisat)
"adE" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"adE" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"adF" = (/turf/simulated/floor/plasteel/darkwarning,/area/aisat)
"adG" = (/obj/machinery/bluespace_beacon,/turf/simulated/floor/plasteel/darkwarning,/area/aisat)
"adH" = (/obj/machinery/status_display{layer = 3; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel/darkwarning/corner{tag = "icon-warndarkcorners (NORTH)"; icon_state = "warndarkcorners"; dir = 1},/area/aisat)
@@ -4232,7 +4232,7 @@
"bDt" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel/black,/area/security/prison)
"bDu" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"bDv" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/security/prison)
"bDw" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"bDw" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"bDx" = (/turf/simulated/floor/plasteel/escape{tag = "icon-escape (SOUTHWEST)"; icon_state = "escape"; dir = 10},/turf/simulated/floor/plasteel/warningline{tag = "icon-warningline (SOUTHWEST)"; icon_state = "warningline"; dir = 10},/area/hallway/secondary/exit)
"bDy" = (/turf/simulated/floor/plasteel/escape,/area/hallway/secondary/exit)
"bDz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plasteel/escape,/area/hallway/secondary/exit)
@@ -7132,7 +7132,7 @@
"cHh" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cHi" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cHj" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cHk" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cHk" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cHl" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cHm" = (/turf/simulated/floor/plasteel/whitepurple/side{tag = "icon-whitepurple (NORTH)"; icon_state = "whitepurple"; dir = 1},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Toxins Lab"; req_access_txt = "8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel/warningline{tag = "icon-warningline (NORTH)"; icon_state = "warningline"; dir = 1},/area/toxins/mixing)
"cHn" = (/obj/structure/bed/stool,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
@@ -1,7 +1,7 @@
"aaa" = (/turf/space,/area/space)
"aab" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_n"; name = "north of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"aac" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/space)
"aad" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aad" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aae" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_ne"; name = "northeast of station"; turf_type = /turf/space; width = 18},/turf/space,/area/space)
"aaf" = (/obj/structure/lattice,/turf/space,/area/space)
"aag" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
@@ -4977,7 +4977,7 @@
"bRK" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos)
"bRL" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos)
"bRM" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/hallway/secondary/entry{name = "Arrivals"})
"bRN" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"bRN" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"bRO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"})
"bRP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"})
"bRQ" = (/obj/structure/closet/crate,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/item/weapon/poster/legit,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
@@ -7994,7 +7994,7 @@
"cXL" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cXM" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cXN" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cXO" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cXO" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cXP" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cXQ" = (/obj/structure/closet/syndicate/nuclear,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cXR" = (/obj/structure/bed/stool,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
+4 -4
View File
@@ -226,7 +226,7 @@
"er" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/alarm{frequency = 1442; pixel_y = 23},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
"es" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
"et" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/effect/spawner/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/brig)
"eu" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"eu" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"ev" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/storage)
"ew" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
"ex" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plasteel,/area/quartermaster/storage)
@@ -1229,7 +1229,7 @@
"xG" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
"xH" = (/obj/structure/closet/l3closet,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
"xI" = (/turf/simulated/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/arrival)
"xJ" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"xJ" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"xK" = (/obj/structure/table,/obj/machinery/microwave,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"xL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/hallway/primary/central)
"xM" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/meter{use_power = 0},/turf/space,/area/space)
@@ -1542,7 +1542,7 @@
"DH" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"DI" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"DJ" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"DK" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"DK" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"DL" = (/obj/machinery/atmospherics/pipe/heat_exchanging/simple{dir = 9},/obj/structure/lattice,/turf/space,/area/engine/engineering)
"DM" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"DN" = (/obj/structure/closet/syndicate/nuclear,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
@@ -1802,7 +1802,7 @@
"IH" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/floor/plasteel/shuttle,/area/shuttle/transport)
"II" = (/turf/simulated/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/transport)
"IJ" = (/obj/machinery/atmospherics/components/unary/vent_scrubber{dir = 1; frequency = 1441; on = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -662,7 +662,7 @@
"amL" = (/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/processing)
"amM" = (/obj/machinery/door/airlock/glass_security{name = "Prisoner Processing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plasteel,/area/security/processing)
"amN" = (/obj/structure/table,/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/glasses/sunglasses{pixel_x = 3; pixel_y = 3},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/security/warden)
"amO" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"amO" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"amP" = (/obj/structure/grille,/obj/machinery/door/poddoor/shutters{id = "syndieshutters"; name = "blast shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/shuttle/syndicate)
"amQ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/cable,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig)
"amR" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/machinery/door/poddoor/preopen{id = "Secure Gate"; name = "brig shutters"},/obj/structure/window/reinforced/fulltile,/turf/simulated/floor/plating,/area/security/brig)
@@ -823,7 +823,7 @@
"apQ" = (/obj/structure/lattice,/turf/space,/area/space/nearstation)
"apR" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/turf/simulated/floor/plating,/area/security/processing)
"apS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/security/processing)
"apT" = (/turf/space,/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"apT" = (/turf/space,/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"apU" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office)
"apV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase,/obj/machinery/light_switch{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/security/detectives_office)
"apW" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint)
@@ -6074,7 +6074,7 @@
"cmP" = (/turf/space,/turf/simulated/wall/shuttle{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"cmQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/engine/engineering)
"cmR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/engine/engineering)
"cmS" = (/obj/machinery/gun_turret,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cmS" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/wall/shuttle{icon_state = "wall3"},/area/shuttle/syndicate)
"cmT" = (/obj/machinery/suit_storage_unit/syndicate,/turf/simulated/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/syndicate)
"cmU" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos)
"cmV" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos)
+32 -31
View File
@@ -444,12 +444,12 @@
maxhealth = 150
metal_cost = 25
glass_cost = 30
var/obj/machinery/gun_turret/defensepylon_internal_turret/pylon_gun
var/obj/machinery/porta_turret/defensepylon_internal_turret/pylon_gun
/obj/structure/divine/defensepylon/New()
..()
pylon_gun = new()
pylon_gun = new(src)
pylon_gun.base = src
pylon_gun.faction = list("[side] god")
@@ -474,49 +474,50 @@
pylon_gun.on = !pylon_gun.on
icon_state = (pylon_gun.on) ? "defensepylon-[side]" : "defensepylon"
//This sits inside the defensepylon, to avoid copypasta
/obj/machinery/gun_turret/defensepylon_internal_turret
/obj/machinery/porta_turret/defensepylon_internal_turret
name = "defense pylon"
desc = "A plyon which is blessed to withstand many blows, and fire strong bolts at nonbelievers."
icon = 'icons/obj/hand_of_god_structures.dmi'
icon_state = "defensepylon"
installation = null
always_up = 1
use_power = 0
has_cover = 0
health = 200
projectile = /obj/item/projectile/beam/pylon_bolt
eprojectile = /obj/item/projectile/beam/pylon_bolt
shot_sound = 'sound/weapons/emitter2.ogg'
eshot_sound = 'sound/weapons/emitter2.ogg'
base_icon_state = "defensepylon"
scan_range = 7
active_state = ""
off_state = ""
faction = null
projectile_type = /obj/item/projectile/beam/pylon_bolt
fire_sound = 'sound/weapons/emitter2.ogg'
emp_vunerable = 0
var/side = "neutral"
var/on = 1
/obj/machinery/gun_turret/defensepylon_internal_turret/process()
if(on)
..()
/obj/machinery/porta_turret/defensepylon_internal_turret/setup()
return
/obj/machinery/gun_turret/defensepylon_internal_turret/fire(atom/target)
/obj/machinery/porta_turret/defensepylon_internal_turret/shootAt(atom/movable/target)
var/obj/item/projectile/A = ..()
if(A)
A.color = side
/obj/machinery/gun_turret/defensepylon_internal_turret/validate_target(atom/target)
. = ..()
if(.)
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(H.handcuffed) //dishonourable to kill somebody who might be converted.
return 0
var/badtarget = 0
switch(side)
if("blue")
badtarget = is_handofgod_bluecultist(target)
if("red")
badtarget = is_handofgod_redcultist(target)
else
badtarget = 1
if(badtarget)
return 0
/obj/machinery/porta_turret/defensepylon_internal_turret/assess_perp(mob/living/carbon/human/perp)
if(perp.handcuffed) //dishonourable to kill somebody who might be converted.
return 0
var/badtarget = 0
switch(side)
if("blue")
badtarget = is_handofgod_bluecultist(perp)
if("red")
badtarget = is_handofgod_redcultist(perp)
else
badtarget = 1
if(badtarget)
return 0
return 10
/obj/item/projectile/beam/pylon_bolt
+156 -175
View File
@@ -17,6 +17,15 @@
req_access = list(access_security)
power_channel = EQUIP //drains power from the EQUIPMENT channel
var/base_icon_state = "grey"
var/active_state = "Taser" // "Taser"/"Laser/"Bullet" ,blue/red/no glow on active turret
var/off_state = "Off"
var/emp_vunerable = 1 // Can be empd
var/scan_range = 7
var/atom/base = null //for turrets inside other objects
var/lasercolor = "" //Something to do with lasertag turrets, blame Sieve for not adding a comment.
var/raised = 0 //if the turret cover is "open" and the turret is raised
var/raising= 0 //if the turret is currently opening or closing its cover
@@ -29,8 +38,9 @@
var/projectile = null //holder for bullettype
var/eprojectile = null //holder for the shot when emagged
var/reqpower = 500 //holder for power needed
var/iconholder = null //holder for the icon_state. 1 for orange sprite, null for blue.
var/egun = null //holder to handle certain guns switching bullettypes
var/always_up = 0 //Will stay active
var/has_cover = 1 //Hides the cover
var/obj/machinery/porta_turret_cover/cover = null //the cover that is covering this turret
var/last_fired = 0 //1: if the turret is cooling down from a shot, 0: turret is ready to fire
@@ -57,19 +67,35 @@
/obj/machinery/porta_turret/New()
..()
icon_state = "[lasercolor]grey_target_prism"
if(!base)
base = src
icon_state = "[base_icon_state][off_state]"
//Sets up a spark system
spark_system = new /datum/effect_system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.attach(src)
cover = new /obj/machinery/porta_turret_cover(loc)
cover.Parent_Turret = src
if(has_cover)
cover = new /obj/machinery/porta_turret_cover(loc)
cover.Parent_Turret = src
setup()
if(!has_cover)
popUp()
/obj/machinery/porta_turret/proc/get_base_icon()
if(installation)
switch(installation)
if(/obj/item/weapon/gun/energy/laser/bluetag)
return "blue"
if(/obj/item/weapon/gun/energy/laser/redtag)
return "red"
return "grey"
/obj/machinery/porta_turret/proc/setup()
var/obj/item/weapon/gun/energy/E=new installation //All energy-based weapons are applicable
var/obj/item/weapon/gun/energy/E= new installation //All energy-based weapons are applicable
var/obj/item/ammo_casing/shottype = E.ammo_type[1]
projectile = shottype.projectile_type
@@ -99,27 +125,20 @@
stun_all = 0
check_anomalies = 0
shot_delay = 30
iconholder = 1
active_state = "Laser"
if(/obj/item/weapon/gun/energy/laser/practice)
iconholder = 1
active_state = "Laser"
eprojectile = /obj/item/projectile/beam
// if(/obj/item/weapon/gun/energy/laser/practice/sc_laser)
// iconholder = 1
// eprojectile = /obj/item/projectile/beam
if(/obj/item/weapon/gun/energy/laser/retro)
iconholder = 1
// if(/obj/item/weapon/gun/energy/laser/retro/sc_retro)
// iconholder = 1
active_state = "Laser"
if(/obj/item/weapon/gun/energy/laser/captain)
iconholder = 1
active_state = "Laser"
if(/obj/item/weapon/gun/energy/lasercannon)
iconholder = 1
active_state = "Laser"
if(/obj/item/weapon/gun/energy/gun/advtaser)
eprojectile = /obj/item/projectile/beam
@@ -140,6 +159,8 @@
eshot_sound = 'sound/weapons/Laser.ogg'
egun = 1
base_icon_state = get_base_icon()
/obj/machinery/porta_turret/Destroy()
//deletes its own cover with it
qdel(cover)
@@ -229,22 +250,17 @@
icon_state = "turretCover"
return
if(stat & BROKEN)
icon_state = "[lasercolor]destroyed_target_prism"
icon_state = "[base_icon_state]Broken"
else
if( powered() )
if(on)
if(iconholder)
//lasers have a orange icon
icon_state = "[lasercolor]orange_target_prism"
else
//almost everything has a blue icon
icon_state = "[lasercolor]target_prism"
icon_state = "[base_icon_state][active_state]"
else
icon_state = "[lasercolor]grey_target_prism"
icon_state = "[base_icon_state][off_state]"
stat &= ~NOPOWER
else
spawn(rand(0, 15))
icon_state = "[lasercolor]grey_target_prism"
icon_state = "[base_icon_state][off_state]"
stat |= NOPOWER
@@ -277,10 +293,11 @@
if(!anchored && !isinspace())
anchored = 1
invisibility = INVISIBILITY_LEVEL_TWO
icon_state = "[lasercolor]grey_target_prism"
icon_state = "[base_icon_state][off_state]"
user << "<span class='notice'>You secure the exterior bolts on the turret.</span>"
cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
cover.Parent_Turret = src //make the cover's parent src
if(has_cover)
cover = new /obj/machinery/porta_turret_cover(loc) //create a new turret. While this is handled in process(), this is to workaround a bug where the turret becomes invisible for a split second
cover.Parent_Turret = src //make the cover's parent src
else if(anchored)
anchored = 0
user << "<span class='notice'>You unsecure the exterior bolts on the turret.</span>"
@@ -295,7 +312,10 @@
user << "<span class='notice'>Controls are now [locked ? "locked" : "unlocked"].</span>"
else
user << "<span class='notice'>Access denied.</span>"
else if(istype(I,/obj/item/device/multitool) && !locked)
var/obj/item/device/multitool/M = I
M.buffer = src
user << "<span class='notice'>You add [src] to multitool buffer.</span>"
else
//if the turret was attacked with the intention of harming it:
user.changeNext_move(CLICK_CD_MELEE)
@@ -339,7 +359,7 @@
user << "<span class='warning'>You short out [src]'s threat assessment circuits.</span>"
visible_message("[src] hums oddly...")
emagged = 1
iconholder = 1
active_state = "Laser"
controllock = 1
on = 0 //turns off the turret temporarily
sleep(60) //6 seconds for the traitor to gtfo of the area before the turret decides to ruin his shit
@@ -379,7 +399,7 @@
/obj/machinery/porta_turret/emp_act(severity)
if(on)
if(on && emp_vunerable)
//if the turret is on, the EMP no matter how severe disables the turret for a while
//and scrambles its settings, with a slight chance of having an emag effect
check_records = pick(0, 1)
@@ -412,7 +432,7 @@
health = 0
density = 0
stat |= BROKEN //enables the BROKEN bit
icon_state = "[lasercolor]destroyed_target_prism"
icon_state = "[base_icon_state]Broken"
invisibility = 0
spark_system.start() //creates some sparks because they look cool
density = 1
@@ -429,22 +449,22 @@
if(stat & BROKEN) //if the turret is borked
qdel(cover) //delete its cover, assuming it has one. Workaround for a pesky little bug
else
if(has_cover)
cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover
cover.Parent_Turret = src //assign the cover its Parent_Turret, which would be this (src)
cover = new /obj/machinery/porta_turret_cover(loc) //if the turret has no cover and is anchored, give it a cover
cover.Parent_Turret = src //assign the cover its Parent_Turret, which would be this (src)
if(stat & (NOPOWER|BROKEN))
if(stat & (NOPOWER|BROKEN) && !always_up)
//if the turret has no power or is broken, make the turret pop down if it hasn't already
popDown()
return
if(!on)
if(!on && !always_up)
//if the turret is off, make it pop down
popDown()
return
var/list/targets = list() //list of primary targets
var/turretview = view(7, src)
var/turretview = view(scan_range, base)
if(check_anomalies) //if it's set to check for xenos/simpleanimals
for(var/mob/living/simple_animal/SA in turretview)
@@ -476,12 +496,13 @@
for(var/obj/mecha/M in turretview)
if(M.occupant)
if(ai || emagged) // we target all occupied mechs if we're emagged or set to attack all non silicons.
if(ai || emagged || assess_perp(M.occupant) >= 4) // we target all occupied mechs if we're emagged or set to attack all non silicons.
targets += M
if(!tryToShootAt(targets))
spawn()
popDown() // no valid targets, close the cover
if(!always_up)
spawn()
popDown() // no valid targets, close the cover
/obj/machinery/porta_turret/proc/tryToShootAt(list/atom/movable/targets)
@@ -501,10 +522,12 @@
return
invisibility = 0
raising = 1
flick("popup", cover)
if(cover)
flick("popup", cover)
sleep(10)
raising = 0
cover.icon_state = "openTurretCover"
if(cover)
cover.icon_state = "openTurretCover"
raised = 1
layer = 4
@@ -517,13 +540,15 @@
return
layer = 3
raising = 1
flick("popdown", cover)
if(cover)
flick("popdown", cover)
sleep(10)
raising = 0
cover.icon_state = "turretCover"
if(cover)
cover.icon_state = "turretCover"
raised = 0
invisibility = 2
icon_state = "[lasercolor]grey_target_prism"
icon_state = "[base_icon_state][off_state]"
/obj/machinery/porta_turret/proc/assess_perp(mob/living/carbon/human/perp)
@@ -585,7 +610,7 @@
if(target)
spawn()
popUp() //pop the turret up if it's not already up.
dir = get_dir(src, target) //even if you can't shoot, follow the target
dir = get_dir(base, target) //even if you can't shoot, follow the target
spawn()
shootAt(target)
return 1
@@ -609,34 +634,34 @@
return
//any emagged turrets will shoot extremely fast! This not only is deadly, but drains a lot power!
if(iconholder)
icon_state = "[lasercolor]orange_target_prism"
else
icon_state = "[lasercolor]target_prism"
icon_state = "[base_icon_state][active_state]"
var/obj/item/projectile/A
if(emagged)
A = new eprojectile(loc)
A = new eprojectile(T)
playsound(loc, eshot_sound, 75, 1)
else
A = new projectile(loc)
A = new projectile(T)
playsound(loc, shot_sound, 75, 1)
A.original = target
if(!emagged)
use_power(reqpower)
else
use_power(reqpower * 2)
//Shooting Code:
//Shooting Code:
A.current = T
A.yo = U.y - T.y
A.xo = U.x - T.x
A.fire()
return A
/obj/machinery/porta_turret/proc/setState(on, emagged)
if(controllock)
return
src.on = on
src.emagged = emagged
src.iconholder = emagged
if(emagged)
src.active_state = "Laser"
src.power_change()
/*
@@ -867,113 +892,16 @@
. = ..()
if(.)
return
var/dat
if(!(Parent_Turret.lasercolor))
dat += text({"
<TT><B>Automatic Portable Turret Installation</B></TT><BR><BR>
Status: []<BR>
Behaviour controls are [Parent_Turret.locked ? "locked" : "unlocked"]"},
"<A href='?src=\ref[src];power=1'>[Parent_Turret.on ? "On" : "Off"]</A>" )
dat += text({"<BR>
Check for Weapon Authorization: []<BR>
Check Security Records: []<BR>
Neutralize Identified Criminals: []<BR>
Neutralize All Non-Security and Non-Command Personnel: []<BR>
Neutralize All Unidentified Life Signs: []<BR>"},
"<A href='?src=\ref[src];operation=authweapon'>[Parent_Turret.auth_weapons ? "Yes" : "No"]</A>",
"<A href='?src=\ref[src];operation=checkrecords'>[Parent_Turret.check_records ? "Yes" : "No"]</A>",
"<A href='?src=\ref[src];operation=shootcrooks'>[Parent_Turret.criminals ? "Yes" : "No"]</A>",
"<A href='?src=\ref[src];operation=shootall'>[Parent_Turret.stun_all ? "Yes" : "No"]</A>" ,
"<A href='?src=\ref[src];operation=checkxenos'>[Parent_Turret.check_anomalies ? "Yes" : "No"]</A>" )
else
dat += text({"
<TT><B>Automatic Portable Turret Installation</B></TT><BR><BR>
Status: []<BR>"},
"<A href='?src=\ref[src];power=1'>[Parent_Turret.on ? "On" : "Off"]</A>" )
user << browse("<HEAD><TITLE>Automatic Portable Turret Installation</TITLE></HEAD>[dat]", "window=autosec")
onclose(user, "autosec")
return Parent_Turret.attack_ai(user)
/obj/machinery/porta_turret_cover/attack_hand(mob/user)
. = ..()
if(.)
return
var/dat
if(!Parent_Turret.lasercolor)
dat += text({"
<TT><B>Automatic Portable Turret Installation</B></TT><BR><BR>
Status: []<BR>
Behaviour controls are [Parent_Turret.locked ? "locked" : "unlocked"]"},
"<A href='?src=\ref[src];power=1'>[Parent_Turret.on ? "On" : "Off"]</A>" )
if(!Parent_Turret.locked)
dat += text({"<BR>
Check for Weapon Authorization: []<BR>
Check Security Records: []<BR>
Neutralize Identified Criminals: []<BR>
Neutralize All Non-Security and Non-Command Personnel: []<BR>
Neutralize All Unidentified Life Signs: []<BR>"},
"<A href='?src=\ref[src];operation=authweapon'>[Parent_Turret.auth_weapons ? "Yes" : "No"]</A>",
"<A href='?src=\ref[src];operation=checkrecords'>[Parent_Turret.check_records ? "Yes" : "No"]</A>",
"<A href='?src=\ref[src];operation=shootcrooks'>[Parent_Turret.criminals ? "Yes" : "No"]</A>",
"<A href='?src=\ref[src];operation=shootall'>[Parent_Turret.stun_all ? "Yes" : "No"]</A>" ,
"<A href='?src=\ref[src];operation=checkxenos'>[Parent_Turret.check_anomalies ? "Yes" : "No"]</A>" )
else
if(istype(user,/mob/living/carbon/human))
var/mob/living/carbon/human/H = user
if(Parent_Turret.lasercolor == "b" && istype(H.wear_suit, /obj/item/clothing/suit/redtag))
return
if(Parent_Turret.lasercolor == "r" && istype(H.wear_suit, /obj/item/clothing/suit/bluetag))
return
dat += text({"
<TT><B>Automatic Portable Turret Installation</B></TT><BR><BR>
Status: []<BR>"},
"<A href='?src=\ref[src];power=1'>[Parent_Turret.on ? "On" : "Off"]</A>" )
user << browse("<HEAD><TITLE>Automatic Portable Turret Installation</TITLE></HEAD>[dat]", "window=autosec")
onclose(user, "autosec")
/obj/machinery/porta_turret_cover/Topic(href, href_list)
if(..())
return
usr.set_machine(src)
Parent_Turret.add_fingerprint(usr)
add_fingerprint(usr)
if(href_list["power"] && !Parent_Turret.locked)
if(Parent_Turret.anchored)
if(Parent_Turret.on)
Parent_Turret.on = 0
else
Parent_Turret.on = 1
else
usr << "<span class='notice'>It has to be secured first!</span>"
updateUsrDialog()
return
switch(href_list["operation"])
if("authweapon")
Parent_Turret.auth_weapons = !Parent_Turret.auth_weapons
if("checkrecords")
Parent_Turret.check_records = !Parent_Turret.check_records
if("shootcrooks")
Parent_Turret.criminals = !Parent_Turret.criminals
if("shootall")
Parent_Turret.stun_all = !Parent_Turret.stun_all
if("checkxenos")
Parent_Turret.check_anomalies = !Parent_Turret.check_anomalies
updateUsrDialog()
return Parent_Turret.attack_hand(user)
/obj/machinery/porta_turret_cover/attackby(obj/item/I, mob/user, params)
@@ -999,7 +927,10 @@ Status: []<BR>"},
updateUsrDialog()
else
user << "<span class='notice'>Access denied.</span>"
else if(istype(I,/obj/item/device/multitool) && !Parent_Turret.locked)
var/obj/item/device/multitool/M = I
M.buffer = Parent_Turret
user << "<span class='notice'>You add [Parent_Turret] to multitool buffer.</span>"
else
user.changeNext_move(CLICK_CD_MELEE)
Parent_Turret.health -= I.force * 0.5
@@ -1014,7 +945,7 @@ Status: []<BR>"},
..()
/obj/machinery/porta_turret_cover/emag_act(mob/user)
if(!emagged)
if(!Parent_Turret.emagged)
user << "<span class='notice'>You short out [Parent_Turret]'s threat assessment circuits.</span>"
visible_message("[Parent_Turret] hums oddly...")
Parent_Turret.emagged = 1
@@ -1025,10 +956,34 @@ Status: []<BR>"},
/obj/machinery/porta_turret/stationary
emagged = 1
New()
/obj/machinery/porta_turret/stationary/New()
installation = new/obj/item/weapon/gun/energy/laser(loc)
..()
/obj/machinery/porta_turret/syndicate
installation = null
always_up = 1
use_power = 0
has_cover = 0
scan_range = 9
projectile = /obj/item/projectile/bullet
eprojectile = /obj/item/projectile/bullet
shot_sound = 'sound/weapons/Gunshot.ogg'
eshot_sound = 'sound/weapons/Gunshot.ogg'
base_icon_state = "syndie"
active_state = "Bullet"
faction = "syndicate"
emp_vunerable = 0
/obj/machinery/porta_turret/syndicate/setup()
return
/obj/machinery/porta_turret/syndicate/assess_perp(mob/living/carbon/human/perp)
if(faction in perp.faction) //Shoot all non syndies
return 0
return 10
////////////////////////
//Turret Control Panel//
////////////////////////
@@ -1043,33 +998,52 @@ Status: []<BR>"},
var/enabled = 1
var/lethal = 0
var/locked = 1
var/control_area //can be area name, path or nothing.
var/control_area = null //can be area name, path or nothing.
var/ailock = 0 // AI cannot use this
req_access = list(access_ai_upload)
var/list/obj/machinery/porta_turret/turrets = list()
/obj/machinery/turretid/New()
/obj/machinery/turretid/New(loc, ndir = 0, built = 0)
..()
if(built)
dir = ndir
locked = 0
pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24)
pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0
power_change() //Checks power and initial settings
return
/obj/machinery/turretid/initialize() //map-placed turrets autolink turrets
if(control_area && istext(control_area))
for(var/area/A in world)
if(A.name == control_area)
control_area = A
break
if(!control_area)
var/area/CA = get_area(src)
if(CA.master && CA.master != CA)
control_area = CA.master
else
control_area = CA
else if(istext(control_area))
for(var/area/A in world)
if(A.name && A.name==control_area)
control_area = A
break
power_change() //Checks power and initial settings
//don't have to check if control_area is path, since get_area_all_atoms can take path.
return
/obj/machinery/turretid/attackby(obj/item/weapon/W, mob/user, params)
for(var/obj/machinery/porta_turret/T in get_area_all_atoms(control_area))
turrets |= T
/obj/machinery/turretid/attackby(obj/item/I, mob/user, params)
if(stat & BROKEN) return
if (istype(I,/obj/item/device/multitool))
var/obj/item/device/multitool/M = I
if(M.buffer && istype(M.buffer,/obj/machinery/porta_turret))
turrets |= M.buffer
user << "You link \the [M.buffer] with \the [src]"
return
if (istype(user, /mob/living/silicon))
return src.attack_hand(user)
else if( get_dist(src, user) == 0 ) // trying to unlock the interface
if( get_dist(src, user) == 0 ) // trying to unlock the interface
if (src.allowed(usr))
if(emagged)
user << "<span class='notice'>The turret control is unresponsive.</span>"
@@ -1156,9 +1130,8 @@ Status: []<BR>"},
updateTurrets()
/obj/machinery/turretid/proc/updateTurrets()
if(control_area)
for (var/obj/machinery/porta_turret/aTurret in get_area_all_atoms(control_area))
aTurret.setState(enabled, lethal)
for (var/obj/machinery/porta_turret/aTurret in turrets)
aTurret.setState(enabled, lethal)
src.update_icon()
/obj/machinery/turretid/power_change()
@@ -1175,4 +1148,12 @@ Status: []<BR>"},
else
icon_state = "control_stun"
else
icon_state = "control_standby"
icon_state = "control_standby"
/obj/item/wallframe/turret_control
name = "turret control frame"
desc = "Used for building turret control panels"
icon = 'icons/obj/apc_repair.dmi'
icon_state = "apc_frame"
result_path = /obj/machinery/turretid
materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT)
@@ -94,8 +94,9 @@
dat += "<hr>"
if(P)
if(P.buffer)
dat += "<br><br>MULTITOOL BUFFER: [P.buffer] ([P.buffer.id]) <a href='?src=\ref[src];link=1'>\[Link\]</a> <a href='?src=\ref[src];flush=1'>\[Flush\]"
var/obj/machinery/telecomms/T = P.buffer
if(istype(T))
dat += "<br><br>MULTITOOL BUFFER: [T] ([T.id]) <a href='?src=\ref[src];link=1'>\[Link\]</a> <a href='?src=\ref[src];flush=1'>\[Flush\]"
else
dat += "<br><br>MULTITOOL BUFFER: <a href='?src=\ref[src];buffer=1'>\[Add Machine\]</a>"
@@ -284,14 +285,15 @@
if(href_list["link"])
if(P)
if(P.buffer && P.buffer != src)
if(!(src in P.buffer.links))
P.buffer.links.Add(src)
var/obj/machinery/telecomms/T = P.buffer
if(istype(T) && T != src)
if(!(src in T.links))
T.links.Add(src)
if(!(P.buffer in src.links))
src.links.Add(P.buffer)
if(!(T in src.links))
src.links.Add(T)
temp = "<font color = #666633>-% Successfully linked with \ref[P.buffer] [P.buffer.name] %-</font color>"
temp = "<font color = #666633>-% Successfully linked with \ref[T] [T.name] %-</font color>"
else
temp = "<font color = #666633>-% Unable to acquire buffer %-</font color>"
-158
View File
@@ -1,158 +0,0 @@
//////////////
//Gun Turret//
//////////////
/obj/machinery/gun_turret //related to turrets but work way differentely because of being mounted on a moving ship.
name = "machine gun turret"
desc = "Syndicate defense turret. It really packs a punch."
density = 1
anchored = 1
var/state = 0 //Like stat on mobs, 0 is alive, 1 is damaged, 2 is dead
var/faction = "syndicate"
var/atom/cur_target = null
var/scan_range = 9 //You will never see them coming
var/health = 200 //Because it lacks a cover, and is mostly to keep people from touching the syndie shuttle.
var/base_icon_state = "syndieturret"
var/projectile_type = /obj/item/projectile/bullet
var/fire_sound = 'sound/weapons/Gunshot.ogg'
var/atom/base = null //where do to range calculations, firing projectiles, etc. from. allows for turrets inside of things to work
icon = 'icons/obj/turrets.dmi'
icon_state = "syndieturret0"
/obj/machinery/gun_turret/New()
..()
if(!base)
base = src
take_damage(0) //check your health
icon_state = "[base_icon_state]" + "0"
/obj/machinery/gun_turret/ex_act(severity, target)
switch(severity)
if(1)
die()
if(2)
take_damage(100)
if(3)
take_damage(50)
return
/obj/machinery/gun_turret/emp_act() //Can't emp an mechanical turret.
return
/obj/machinery/gun_turret/update_icon()
if(state > 2 || state < 0) //someone fucked up the vars so fix them
take_damage(0)
icon_state = "[base_icon_state]" + "[state]"
return
/obj/machinery/gun_turret/proc/take_damage(damage)
health -= damage
switch(health)
if(101 to INFINITY)
state = 0
if(1 to 100)
state = 1
if(-INFINITY to 0)
if(state != 2)
die()
return
state = 2
update_icon()
return
/obj/machinery/gun_turret/bullet_act(obj/item/projectile/Proj)
take_damage(Proj.damage)
return
/obj/machinery/gun_turret/proc/die()
state = 2
update_icon()
/obj/machinery/gun_turret/attack_hand(mob/user)
return
/obj/machinery/gun_turret/attack_ai(mob/user)
return attack_hand(user)
/obj/machinery/gun_turret/attack_alien(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
user.visible_message("<span class='danger'>[user] slashes at [src]!</span>", "<span class='danger'>You slash at [src]!</span>")
take_damage(15)
return
/obj/machinery/gun_turret/proc/should_target(atom/target)
if(ismob(target))
var/mob/M = target
if(!M.stat && !(faction in M.faction))
return 1
else if(istype(target, /obj/mecha))
var/obj/mecha/M = target
if(M.occupant && should_target(M.occupant))
return 1
return 0
/obj/machinery/gun_turret/proc/validate_target(atom/target)
if(get_dist(target, base)>scan_range)
return 0
if(should_target(target))
return 1
return 0
/obj/machinery/gun_turret/process()
if(state == 2)
return
if(cur_target && !validate_target(cur_target))
cur_target = null
if(!cur_target)
cur_target = get_target()
if(cur_target)
fire(cur_target)
return
/obj/machinery/gun_turret/proc/get_target()
var/list/pos_targets = list()
var/target = null
for(var/mob/living/M in view(scan_range,base))
if(!should_target(M))
continue
pos_targets += M
for(var/obj/mecha/M in oview(scan_range, base))
if(!should_target(M))
continue
pos_targets += M
if(pos_targets.len)
target = pick(pos_targets)
return target
/obj/machinery/gun_turret/proc/fire(atom/target)
if(!target)
cur_target = null
return
src.dir = get_dir(base,target)
var/turf/targloc = get_turf(target)
if(!src)
return
var/turf/curloc = get_turf(base)
if (!targloc || !curloc)
return
if (targloc == curloc)
return
playsound(src, fire_sound, 50, 1)
var/obj/item/projectile/A = new projectile_type(curloc)
A.current = curloc
A.yo = targloc.y - curloc.y
A.xo = targloc.x - curloc.x
A.fire()
return
+1 -1
View File
@@ -15,7 +15,7 @@
throw_speed = 3
materials = list(MAT_METAL=50, MAT_GLASS=20)
origin_tech = "magnets=1;engineering=1"
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
var/obj/machinery/buffer // simple machine buffer for device linkage
hitsound = 'sound/weapons/tap.ogg'
@@ -578,3 +578,11 @@
materials = list(MAT_METAL = 150, MAT_GLASS = 150)
build_path = /obj/item/device/geiger_counter
category = list("initial", "Tools")
/datum/design/turret_control_frame
name = "Turret control frame"
id = "turret_control"
build_type = AUTOLATHE
materials = list(MAT_METAL = 12000)
build_path = /obj/item/wallframe/turret_control
category = list("initial", "Construction")
Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

-1
View File
@@ -449,7 +449,6 @@
#include "code\game\machinery\syndicatebomb.dm"
#include "code\game\machinery\teleporter.dm"
#include "code\game\machinery\transformer.dm"
#include "code\game\machinery\turrets.dm"
#include "code\game\machinery\vending.dm"
#include "code\game\machinery\washing_machine.dm"
#include "code\game\machinery\wishgranter.dm"