mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-01-17 04:27:39 +00:00
Fixing merge conflicts
THis is getting harder and harder
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/tg/station 13 v1.0 - 6 October 2010 [](http://hibernia.fallemmc.com:8090/job/tgstation/)
|
||||
/tg/station 13 v1.0 - 6 October 2010 [](https://travis-ci.org/tgstation/-tg-station)
|
||||
|
||||
Website: http://ss13.eu
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -94,7 +94,7 @@
|
||||
"abP" = (/obj/structure/table,/obj/machinery/recharger,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/obj/machinery/door_control{id = "Secure Gate"; name = "Brig Lockdown"; pixel_x = 26; pixel_y = -26; req_access_txt = "2"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden)
|
||||
"abQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/warden)
|
||||
"abR" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/structure/table/woodentable,/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1424; listening = 1; name = "Interrogation Intercom"; pixel_x = 0; pixel_y = -31},/turf/simulated/floor{icon_state = "grimy"},/area/security/main)
|
||||
"abS" = (/obj/structure/closet/crate/medical,/obj/item/weapon/cable_coil,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"abS" = (/obj/structure/closet/crate/medical,/obj/item/stack/cable_coil,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"abT" = (/obj/machinery/door/airlock/engineering{icon_state = "door_closed"; locked = 0; name = "Fore Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"abU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/maintenance{name = "Brig Maintenance"; req_access_txt = "0"; req_one_access_txt = "63;12"},/turf/simulated/floor/plating,/area/maintenance/fore)
|
||||
"abV" = (/obj/structure/closet,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/obj/item/weapon/contraband/poster,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
@@ -266,7 +266,7 @@
|
||||
"aff" = (/obj/structure/table/reinforced,/obj/item/weapon/paper,/turf/simulated/floor,/area/security/main)
|
||||
"afg" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "forestarboard"; name = "Fore-Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
|
||||
"afh" = (/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard)
|
||||
"afi" = (/obj/item/weapon/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/auxport)
|
||||
"afi" = (/obj/item/stack/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/auxport)
|
||||
"afj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/main)
|
||||
"afk" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden)
|
||||
"afl" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main)
|
||||
@@ -355,7 +355,7 @@
|
||||
"agQ" = (/obj/structure/rack,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/maintenance/fore)
|
||||
"agR" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fore)
|
||||
"agS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"agT" = (/obj/item/weapon/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard)
|
||||
"agT" = (/obj/item/stack/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/auxstarboard)
|
||||
"agU" = (/turf/space,/area/maintenance/auxsolarstarboard)
|
||||
"agV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"agW" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/security/warden)
|
||||
@@ -927,7 +927,7 @@
|
||||
"arQ" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"arR" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Engineering"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bot"},/area/maintenance/starboard)
|
||||
"arS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"arT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/obj/item/weapon/crowbar/red,/obj/item/weapon/grenade/empgrenade,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"arT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/weapon/crowbar/red,/obj/item/weapon/grenade/empgrenade,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"arU" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/light/small{dir = 1},/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/structure/dresser,/turf/simulated/floor/carpet,/area/crew_quarters/sleep)
|
||||
"arV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"arW" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{name = "Engineering Maintenance"; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
@@ -1154,7 +1154,7 @@
|
||||
"awj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
|
||||
"awk" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
|
||||
"awl" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
|
||||
"awm" = (/obj/item/weapon/cable_coil,/turf/simulated/floor/plating/airless,/area)
|
||||
"awm" = (/obj/item/stack/cable_coil,/turf/simulated/floor/plating/airless,/area)
|
||||
"awn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/fore)
|
||||
"awo" = (/obj/structure/cable,/obj/machinery/power/solar{id = "forestarboard"; name = "Fore-Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area)
|
||||
"awp" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;63"},/turf/simulated/floor/plating,/area/maintenance/fore)
|
||||
@@ -1329,7 +1329,7 @@
|
||||
"azC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable/yellow,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/main)
|
||||
"azD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"azE" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden)
|
||||
"azF" = (/obj/structure/closet/crate,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/miningdock)
|
||||
"azF" = (/obj/structure/closet/crate,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/miningdock)
|
||||
"azG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/quartermaster/miningdock)
|
||||
"azH" = (/obj/item/weapon/ore/silver,/obj/item/weapon/ore/silver,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/quartermaster/miningdock)
|
||||
"azI" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor{icon_state = "warning"},/area/quartermaster/miningdock)
|
||||
@@ -2012,7 +2012,7 @@
|
||||
"aMJ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod1/station)
|
||||
"aMK" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/quartermaster/office{name = "\improper Cargo Office"})
|
||||
"aML" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_mining{name = "Mailroom"; req_access_txt = "0"; req_one_access_txt = "48;50"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/office{name = "\improper Cargo Office"})
|
||||
"aMM" = (/obj/structure/table,/obj/item/weapon/cable_coil{amount = 5},/obj/item/device/flashlight,/obj/machinery/light_construct{dir = 4},/turf/simulated/floor,/area/construction)
|
||||
"aMM" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/device/flashlight,/obj/machinery/light_construct{dir = 4},/turf/simulated/floor,/area/construction)
|
||||
"aMN" = (/obj/structure/table,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "arrival"; dir = 4},/area/quartermaster/office{name = "\improper Cargo Office"})
|
||||
"aMO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/quartermaster/storage)
|
||||
"aMP" = (/obj/structure/grille,/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/security/checkpoint2{name = "Customs"})
|
||||
@@ -2095,7 +2095,7 @@
|
||||
"aOo" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/computer/secure_data,/turf/simulated/floor/wood,/area/crew_quarters/heads)
|
||||
"aOp" = (/obj/structure/table,/obj/item/device/multitool,/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech)
|
||||
"aOq" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/storage/tools)
|
||||
"aOr" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech)
|
||||
"aOr" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/storage/tech)
|
||||
"aOs" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor,/area/storage/tools)
|
||||
"aOt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech)
|
||||
"aOu" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/storage/tech)
|
||||
@@ -2855,7 +2855,7 @@
|
||||
"bcU" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{icon = 'icons/obj/doors/Doorengglass.dmi'; name = "Art Storage"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/storage/art)
|
||||
"bcV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/break_room)
|
||||
"bcW" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/camera{c_tag = "Port Primary Hallway - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/port)
|
||||
"bcX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/goonplaque{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding. The station model number is MSv39AIII:140106"},/area/hallway/primary/port)
|
||||
"bcX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/goonplaque{desc = "\"This is a plaque in honour of our comrades on the G4407 Stations. Hopefully TG4407 model can live up to your fame and fortune.\" Scratched in beneath that is a crude image of a meteor and a spaceman. The spaceman is laughing. The meteor is exploding. The station model number is MSv39BIIII:140204"},/area/hallway/primary/port)
|
||||
"bcY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 2; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room)
|
||||
"bcZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/power/apc{dir = 2; name = "Engineering Foyer APC"; pixel_x = -1; pixel_y = -26},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/light,/turf/simulated/floor,/area/engine/break_room)
|
||||
"bda" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering Foyer"; req_access_txt = "0"; req_one_access_txt = "32;19"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/engine/break_room)
|
||||
@@ -2944,7 +2944,7 @@
|
||||
"beF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/cigbutt,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"beG" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/engine/break_room)
|
||||
"beH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/maintenance/starboard)
|
||||
"beI" = (/obj/structure/table,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/turf/simulated/floor,/area/storage/art)
|
||||
"beI" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/simulated/floor,/area/storage/art)
|
||||
"beJ" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/carpet,/area/bridge)
|
||||
"beK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Cargo Technician"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/quartermaster/storage)
|
||||
"beL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/quartermaster/storage)
|
||||
@@ -3268,7 +3268,7 @@
|
||||
"bkR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/storage/primary)
|
||||
"bkS" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/flasher{id = "hopflash"; pixel_x = 28},/turf/simulated/floor{icon_state = "delivery"},/area/bridge/meeting_room{name = "\improper Command Hallway"})
|
||||
"bkT" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/storage/primary)
|
||||
"bkU" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = 5},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/storage/primary)
|
||||
"bkU" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 5},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/storage/primary)
|
||||
"bkV" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 2; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/port)
|
||||
"bkW" = (/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/storage/primary)
|
||||
"bkX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/port)
|
||||
@@ -3485,7 +3485,7 @@
|
||||
"bpa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bpb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central)
|
||||
"bpc" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 2; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 4; icon_state = "neutralcorner"},/area/hallway/primary/central)
|
||||
"bpd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/obj/item/weapon/cable_coil,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bpd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bpe" = (/obj/structure/closet/radiation,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bpf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bpg" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
@@ -3512,7 +3512,7 @@
|
||||
"bpB" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Mix to Filter"; on = 1},/turf/simulated/floor,/area/maintenance/storage)
|
||||
"bpC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/turret_protected/aisat_interior{name = "\improper MiniSat Central Foyer"})
|
||||
"bpD" = (/obj/structure/table,/obj/machinery/light_switch{pixel_x = 23},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bpE" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering)
|
||||
"bpE" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering)
|
||||
"bpF" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/crowbar,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering)
|
||||
"bpG" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/obj/item/weapon/wrench,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering)
|
||||
"bpH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
@@ -4090,7 +4090,7 @@
|
||||
"bAH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
|
||||
"bAI" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice,/turf/simulated/floor,/area/crew_quarters/locker)
|
||||
"bAJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area)
|
||||
"bAK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil,/obj/item/weapon/screwdriver,/obj/item/weapon/weldingtool,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bAK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/crowbar,/obj/item/stack/cable_coil,/obj/item/weapon/screwdriver,/obj/item/weapon/weldingtool,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bAL" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/gloves/black,/obj/item/weapon/extinguisher{pixel_x = 8},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/item/clothing/glasses/meson,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bAM" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering)
|
||||
"bAN" = (/obj/machinery/computer/security,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/brig)
|
||||
@@ -4730,7 +4730,7 @@
|
||||
"bMX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bMY" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "yellow"; dir = 4; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/maintenance/storage)
|
||||
"bMZ" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple{pipe_color = "green"; icon_state = "intact-g"; level = 2},/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/turf/simulated/floor{dir = 4; icon_state = "caution"},/area/maintenance/storage)
|
||||
"bNa" = (/obj/structure/closet,/obj/item/weapon/cable_coil/random,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard)
|
||||
"bNa" = (/obj/structure/closet,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard)
|
||||
"bNb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bNc" = (/obj/machinery/door/airlock/maintenance{name = "Storage Room"; req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bNd" = (/obj/machinery/air_sensor{frequency = 1443; id_tag = "air_sensor"; output = 7},/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/maintenance/storage)
|
||||
@@ -5012,7 +5012,7 @@
|
||||
"bSt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor{icon_state = "whitegreenfull"},/area/medical/medbay{name = "Medbay Central"})
|
||||
"bSu" = (/obj/machinery/door/firedoor,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay{name = "Medbay Central"})
|
||||
"bSv" = (/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/obj/structure/table/reinforced,/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/lab)
|
||||
"bSw" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table/reinforced,/obj/machinery/light,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/lab)
|
||||
"bSw" = (/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table/reinforced,/obj/machinery/light,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/lab)
|
||||
"bSx" = (/obj/structure/stool/bed/chair,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay{name = "Medbay Central"})
|
||||
"bSy" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/structure/sink{dir = 8; icon_state = "sink"; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"})
|
||||
"bSz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "neutralcorner"},/area/hallway/primary/central)
|
||||
@@ -5229,7 +5229,7 @@
|
||||
"bWC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bWD" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/obj/structure/noticeboard{desc = "A board for pinning important notices upon. Probably helpful for keeping track of requests."; name = "requests board"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "warning"},/area/hydroponics)
|
||||
"bWE" = (/obj/machinery/vending/hydronutrients,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "warning"},/area/hydroponics)
|
||||
"bWF" = (/obj/structure/closet/crate,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/cable_coil/random,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard)
|
||||
"bWF" = (/obj/structure/closet/crate,/obj/item/weapon/storage/belt/utility,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/starboard)
|
||||
"bWG" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 10; icon_state = "intact-c"; initialize_directions = 10; level = 2},/turf/simulated/floor,/area/maintenance/storage)
|
||||
"bWH" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 6; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/maintenance/storage)
|
||||
"bWI" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
@@ -5302,7 +5302,7 @@
|
||||
"bXX" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bXY" = (/obj/structure/rack,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/hand_labeler,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bXZ" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/nutrient/ez,/turf/simulated/floor{icon_state = "warning"},/area/hydroponics)
|
||||
"bYa" = (/obj/structure/rack,/obj/item/weapon/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bYa" = (/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bYb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"bYc" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
"bYd" = (/obj/structure/closet,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/hemostat,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
|
||||
@@ -5362,7 +5362,7 @@
|
||||
"bZf" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/carpet,/area/library)
|
||||
"bZg" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bZh" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"bZi" = (/obj/structure/closet/crate,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/cable_coil/random,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"bZi" = (/obj/structure/closet/crate,/obj/item/weapon/storage/belt/utility,/obj/item/stack/cable_coil/random,/turf/simulated/floor/plating,/area/maintenance/starboard)
|
||||
"bZj" = (/obj/machinery/atmospherics/pipe/manifold{dir = 2; icon_state = "manifold"; level = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
|
||||
"bZk" = (/obj/machinery/atmospherics/pipe/simple{dir = 10; icon_state = "intact"; level = 2},/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator)
|
||||
"bZl" = (/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
@@ -5407,7 +5407,7 @@
|
||||
"bZY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/bridge/meeting_room{name = "\improper Command Hallway"})
|
||||
"bZZ" = (/obj/structure/disposaloutlet{dir = 2},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating/airless,/area)
|
||||
"caa" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/lab)
|
||||
"cab" = (/obj/item/weapon/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/port)
|
||||
"cab" = (/obj/item/stack/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/port)
|
||||
"cac" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"cad" = (/turf/simulated/wall/r_wall,/area/security/checkpoint/science{name = "Security Post - Research Division"})
|
||||
"cae" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;7;35;8;47"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
@@ -5591,7 +5591,7 @@
|
||||
"cdA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"})
|
||||
"cdB" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"cdC" = (/obj/structure/table/reinforced,/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor/shutters/preopen{id = "rndshuttersup"; name = "research and development lab shutters"},/obj/machinery/door/firedoor,/obj/machinery/door/window/eastright{dir = 2; name = "Research and Development Desk"; req_access_txt = "7"},/turf/simulated/floor/plating,/area/toxins/lab)
|
||||
"cdD" = (/obj/structure/table/woodentable,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/cable_coil,/obj/item/device/mmi{name = "man-machine interface"},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"})
|
||||
"cdD" = (/obj/structure/table/woodentable,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/stack/cable_coil,/obj/item/device/mmi{name = "man-machine interface"},/turf/simulated/floor/carpet,/area/assembly/showroom{name = "\improper Corporate Showroom"})
|
||||
"cdE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "bar"},/area/crew_quarters/bar{name = "\improper Maltese Falcon"})
|
||||
"cdF" = (/obj/structure/closet/emcloset,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/library)
|
||||
"cdG" = (/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/rods{amount = 50},/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/power/apc{dir = 8; name = "E.V.A. Storage APC"; pixel_x = -24},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"})
|
||||
@@ -5654,7 +5654,7 @@
|
||||
"ceL" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
|
||||
"ceM" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/maintenance/storage)
|
||||
"ceN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/window/northleft{dir = 8; name = "Disposals Chute"; pixel_x = -1; pixel_y = 0; req_access_txt = "0"},/obj/machinery/disposal/deliveryChute{dir = 8; name = "disposals chute"; pixel_x = 5},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/teleporter{name = "\improper Teleporter Room"})
|
||||
"ceO" = (/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/table,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil,/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13","Medbay")},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry)
|
||||
"ceO" = (/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 4},/obj/item/clothing/glasses/science,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/machinery/camera{c_tag = "Chemistry"; dir = 4; network = list("SS13","Medbay")},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"},/area/medical/chemistry)
|
||||
"ceP" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/maintenance/storage)
|
||||
"ceQ" = (/obj/machinery/door/airlock/external{name = "Auxiliary Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"})
|
||||
"ceR" = (/obj/structure/closet,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
@@ -6088,7 +6088,7 @@
|
||||
"cnd" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
|
||||
"cne" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; dir = 2; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/maintenance/storage)
|
||||
"cnf" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/structure/sign/nosmoking_2{pixel_x = -32},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage)
|
||||
"cng" = (/obj/structure/rack,/obj/item/weapon/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/weapon/cable_coil,/obj/item/weapon/wirecutters,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"cng" = (/obj/structure/rack,/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/stack/cable_coil,/obj/item/weapon/wirecutters,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"cnh" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/light_switch{pixel_x = -8; pixel_y = 30},/turf/simulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/ai_monitored/storage/eva{name = "E.V.A. Storage"})
|
||||
"cni" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/toxins/storage)
|
||||
"cnj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Auxiliary Restrooms APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor{icon_state = "floorgrime"},/area/crew_quarters/toilet{name = "\improper Auxiliary Restrooms"})
|
||||
@@ -6581,7 +6581,7 @@
|
||||
"cwC" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;5;39;6"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"cwD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
|
||||
"cwE" = (/obj/structure/sign/biohazard{pixel_x = -32},/turf/space,/area)
|
||||
"cwF" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/weapon/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/weapon/cable_coil,/turf/simulated/floor,/area/assembly/chargebay)
|
||||
"cwF" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/stack/cable_coil{pixel_x = -1; pixel_y = -3},/obj/item/stack/cable_coil,/turf/simulated/floor,/area/assembly/chargebay)
|
||||
"cwG" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{icon_state = "whitebluefull"},/area/medical/genetics)
|
||||
"cwH" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor{dir = 9; icon_state = "whiteblue"},/area/medical/genetics)
|
||||
"cwI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/stool/bed/chair,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
@@ -6932,7 +6932,7 @@
|
||||
"cDp" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDr" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDs" = (/obj/item/weapon/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDs" = (/obj/item/stack/cable_coil,/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDt" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDu" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
"cDv" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/starboard)
|
||||
@@ -7437,7 +7437,7 @@
|
||||
"cNa" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
|
||||
"cNb" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "whitegreen"},/area/medical/virology)
|
||||
"cNc" = (/obj/structure/stool/bed/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom)
|
||||
"cNd" = (/obj/structure/rack,/obj/item/weapon/cable_coil,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape/centcom)
|
||||
"cNd" = (/obj/structure/rack,/obj/item/stack/cable_coil,/turf/simulated/shuttle/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape/centcom)
|
||||
"cNe" = (/obj/structure/ore_box,/turf/simulated/floor{icon_state = "bot"},/area/teleporter{name = "\improper Teleporter Room"})
|
||||
"cNf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/medical/virology)
|
||||
"cNg" = (/turf/unsimulated/wall,/area/syndicate_mothership)
|
||||
@@ -7583,7 +7583,7 @@
|
||||
"cPQ" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
|
||||
"cPR" = (/obj/structure/table,/obj/item/trash/cheesie{pixel_y = 4},/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology)
|
||||
"cPS" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main)
|
||||
"cPT" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/cable_coil,/obj/item/device/flash,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics)
|
||||
"cPT" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/stack/cable_coil,/obj/item/device/flash,/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics)
|
||||
"cPU" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/plating{icon_state = "floorgrime"},/area/shuttle/escape/centcom)
|
||||
"cPV" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/escape/centcom)
|
||||
"cPW" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom)
|
||||
@@ -7870,7 +7870,7 @@
|
||||
"cVr" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVs" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVt" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVu" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVu" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/stack/cable_coil/cut,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVv" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVw" = (/obj/structure/rack,/obj/item/clothing/suit/space/rig/medical,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cVx" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
@@ -7915,7 +7915,7 @@
|
||||
"cWk" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/airless,/area/tcommsat/chamber)
|
||||
"cWl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"cWm" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"cWn" = (/obj/item/weapon/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"cWn" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"cWo" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"cWp" = (/obj/item/weapon/folder/yellow,/turf/simulated/floor/airless,/area/tcommsat/chamber)
|
||||
"cWq" = (/obj/structure/stool/bed,/obj/effect/decal/remains/human,/turf/simulated/floor/airless,/area/tcommsat/chamber)
|
||||
@@ -8184,8 +8184,8 @@
|
||||
"dbt" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
|
||||
"dbu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access)
|
||||
"dbv" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"dbw" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/plating/airless,/area)
|
||||
"dbx" = (/obj/item/weapon/cable_coil/cut,/turf/space,/area)
|
||||
"dbw" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area)
|
||||
"dbx" = (/obj/item/stack/cable_coil/cut,/turf/space,/area)
|
||||
"dby" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"dbz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area)
|
||||
"dbA" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
@@ -8205,14 +8205,14 @@
|
||||
"dbO" = (/obj/structure/computerframe,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbP" = (/obj/structure/table,/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbQ" = (/obj/machinery/computer/security,/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbR" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbR" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbS" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbT" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbU" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dbV" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"dbW" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
|
||||
"dbX" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
|
||||
"dbY" = (/obj/item/weapon/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"dbY" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"dbZ" = (/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"dca" = (/turf/simulated/wall,/area/derelict/singularity_engine)
|
||||
"dcb" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge)
|
||||
@@ -8243,7 +8243,7 @@
|
||||
"dcA" = (/obj/structure/stool,/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dcB" = (/obj/structure/table,/obj/item/weapon/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"dcC" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"dcD" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
|
||||
"dcD" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
|
||||
"dcE" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless,/area)
|
||||
"dcF" = (/obj/structure/window/basic,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area)
|
||||
"dcG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area)
|
||||
@@ -8282,11 +8282,11 @@
|
||||
"ddn" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"ddo" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"ddp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"ddq" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
|
||||
"ddq" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
|
||||
"ddr" = (/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"dds" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"ddt" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"ddu" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"ddu" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"ddv" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"ddw" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
|
||||
"ddx" = (/turf/simulated/floor/airless{icon_state = "circuit"},/area/derelict/singularity_engine)
|
||||
@@ -8296,8 +8296,8 @@
|
||||
"ddB" = (/obj/machinery/door/window/southleft,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "white"},/area/derelict/medical)
|
||||
"ddC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/hallway/primary)
|
||||
"ddD" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"ddE" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"ddF" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"ddE" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"ddF" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"ddG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"ddH" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"ddI" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "circuit"},/area/derelict/singularity_engine)
|
||||
@@ -8314,7 +8314,7 @@
|
||||
"ddT" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"ddU" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"ddV" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"ddW" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"ddW" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"ddX" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"ddY" = (/turf/simulated/wall,/area/derelict/hallway/primary)
|
||||
"ddZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/airless,/area/derelict/hallway/primary)
|
||||
@@ -8535,7 +8535,7 @@
|
||||
"dig" = (/obj/structure/table,/turf/simulated/floor/airless,/area)
|
||||
"dih" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area)
|
||||
"dii" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; freerange = 1; listening = 0; name = "Pirate Radio Broadcast Channel"; pixel_x = 0},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/djstation)
|
||||
"dij" = (/obj/structure/lattice,/obj/item/weapon/cable_coil/cut,/turf/space,/area)
|
||||
"dij" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/space,/area)
|
||||
"dik" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/derelict/arrival)
|
||||
"dil" = (/obj/structure/stool,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
|
||||
"dim" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
|
||||
@@ -8574,7 +8574,7 @@
|
||||
"diT" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area)
|
||||
"diU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
|
||||
"diV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"diW" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
|
||||
"diW" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
|
||||
"diX" = (/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"diY" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"diZ" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
|
||||
@@ -9604,7 +9604,7 @@
|
||||
"dCJ" = (/obj/machinery/door/firedoor/border_only{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"})
|
||||
"dCK" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/escape_pod4/transit)
|
||||
"dCL" = (/obj/machinery/door/airlock/maintenance{name = "Genetics Maintenance"; req_access_txt = "9"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"dCM" = (/obj/structure/closet/crate,/obj/item/weapon/cable_coil,/obj/item/weapon/grenade/chem_grenade,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"dCM" = (/obj/structure/closet/crate,/obj/item/stack/cable_coil,/obj/item/weapon/grenade/chem_grenade,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
|
||||
"dCN" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"})
|
||||
"dCO" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod4/transit)
|
||||
"dCP" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/escape_pod4/transit)
|
||||
@@ -9628,7 +9628,7 @@
|
||||
"dDh" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
|
||||
"dDi" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/wiz,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
|
||||
"dDj" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"dDk" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"dDk" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"dDl" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"dDm" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"dDn" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
@@ -9713,7 +9713,7 @@
|
||||
"dEO" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay3{name = "Medbay Aft"})
|
||||
"dEP" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"dEQ" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/radio/electropack,/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"dER" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/weapon/cable_coil,/obj/item/device/multitool,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"dER" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"dES" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "Test Chamber Monitor"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/xenobiology)
|
||||
"dET" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera/autoname{dir = 4; network = list("SS13","RD")},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology)
|
||||
"dEU" = (/obj/item/device/radio/intercom{pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/camera{c_tag = "Virology - Cells"; dir = 4; network = list("SS13","Medbay")},/turf/simulated/floor{dir = 9; icon_state = "whitegreen"},/area/medical/virology)
|
||||
4068
_maps/map_files/MiniStation/MiniStation.dmm
Normal file
4068
_maps/map_files/MiniStation/MiniStation.dmm
Normal file
File diff suppressed because it is too large
Load Diff
83
_maps/map_files/MiniStation/job/jobs.dm
Normal file
83
_maps/map_files/MiniStation/job/jobs.dm
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
In this file we modify the job datums when the ministation.dm file is included/ticked.
|
||||
Since we will be overriden by the job datums, we have to modify the variables in the constructor.
|
||||
*/
|
||||
|
||||
|
||||
/datum/job/New()
|
||||
..()
|
||||
supervisors = "the captain and the head of personnel"
|
||||
|
||||
/datum/job/assistant // Here so assistant appears on the top of the select job list.
|
||||
|
||||
// Command
|
||||
|
||||
/datum/job/captain/New()
|
||||
..()
|
||||
supervisors = "Nanotrasen and Central Command"
|
||||
|
||||
/datum/job/hop/New()
|
||||
..()
|
||||
supervisors = "the captain and Central Command"
|
||||
|
||||
/datum/job/hop/get_access()
|
||||
return get_all_accesses()
|
||||
|
||||
// Cargo
|
||||
|
||||
/datum/job/cargo_tech/New()
|
||||
..()
|
||||
total_positions = 3
|
||||
spawn_positions = 3
|
||||
access = list(access_maint_tunnels, access_mailsorting, access_cargo, access_cargo_bot, access_qm, access_mint, access_mining, access_mining_station)
|
||||
minimal_access = list(access_maint_tunnels, access_cargo, access_cargo_bot, access_mining, access_mint, access_mining_station, access_mailsorting)
|
||||
|
||||
// Engineering
|
||||
|
||||
/datum/job/engineer/New()
|
||||
..()
|
||||
total_positions = 4
|
||||
spawn_positions = 4
|
||||
access = list(access_eva, access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_atmospherics, access_tcomsat)
|
||||
minimal_access = list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels, access_external_airlocks, access_construction, access_tcomsat, access_atmospherics)
|
||||
|
||||
// Medical
|
||||
|
||||
/datum/job/doctor/New()
|
||||
..()
|
||||
total_positions = 4
|
||||
spawn_positions = 4
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics)
|
||||
minimal_access = list(access_medical, access_morgue, access_surgery)
|
||||
|
||||
|
||||
/datum/job/chemist/New()
|
||||
..()
|
||||
total_positions = 1
|
||||
spawn_positions = 1
|
||||
access = list(access_medical, access_morgue, access_surgery, access_chemistry, access_virology, access_genetics)
|
||||
minimal_access = list(access_medical, access_chemistry)
|
||||
|
||||
// Science
|
||||
|
||||
/datum/job/scientist/New()
|
||||
..()
|
||||
total_positions = 4
|
||||
spawn_positions = 4
|
||||
access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology)
|
||||
minimal_access = list(access_tox, access_tox_storage, access_research, access_xenobiology, access_robotics)
|
||||
|
||||
// Security
|
||||
|
||||
/datum/job/detective/New()
|
||||
..()
|
||||
supervisors = "no one but yourself"
|
||||
access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_engine)
|
||||
minimal_access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court)
|
||||
|
||||
/datum/job/officer/New()
|
||||
..()
|
||||
total_positions = 4
|
||||
spawn_positions = 4
|
||||
access = list(access_security, access_sec_doors, access_brig, access_court)
|
||||
minimal_access = list(access_security, access_sec_doors, access_brig, access_court)
|
||||
55
_maps/map_files/MiniStation/job/removed.dm
Normal file
55
_maps/map_files/MiniStation/job/removed.dm
Normal file
@@ -0,0 +1,55 @@
|
||||
// Removed Jobs, setting config_check to 0 will stop them from being initialised.
|
||||
|
||||
/datum/job/chef/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/hydro/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/qm/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/mining/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/mime/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/librarian/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/lawyer/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/chaplain/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/chief_engineer/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/atmos/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/cmo/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/geneticist/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/virologist/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/rd/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/roboticist/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/hos/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/warden/config_check()
|
||||
return 0
|
||||
|
||||
/datum/job/cyborg/config_check()
|
||||
return 0
|
||||
19
_maps/map_files/MiniStation/misc.dm
Normal file
19
_maps/map_files/MiniStation/misc.dm
Normal file
@@ -0,0 +1,19 @@
|
||||
// Override global variables here!
|
||||
|
||||
var/datum/map_config/MiniStation = new()
|
||||
|
||||
/datum/map_config/New()
|
||||
..()
|
||||
accessable_z_levels = list("1" = 20, "4" = 40, "5" = 40) // Restrict the map to the non-empty z levels, which were all combined in MiniStation
|
||||
|
||||
// Enable all headsets by default in MiniStation, we don't worry about spam here.
|
||||
// Also both heads are in charge of everything, give them all department channels.
|
||||
|
||||
/obj/item/device/encryptionkey/heads/New()
|
||||
..()
|
||||
// Give all channels and turn everything on
|
||||
channels = list("Command" = 1, "Security" = 1, "Engineering" = 1, "Science" = 1, "Medical" = 1, "Supply" = 1, "Service" = 1)
|
||||
|
||||
/obj/item/weapon/paper/generator
|
||||
name = "paper - 'generator instructions'"
|
||||
info = "<h2>How to setup the Thermo-Generator</h2><ol> <li>To the top right is a room full of canisters; to the bottom there is a room full of pipes. Connect C02 canisters to the pipe room's top connector ports, the cansisters will help act as a buffer so only remove them when refilling the gas..</li> <li>Connect 3 plasma and 2 oxygen canisters to the bottom ports of the pipe room.</li> <li>Turn on all the pumps and valves in the room except for the one connected to the yellow pipe and red pipe, no adjustments to the pump strength needed.</li> <li>Look into the camera monitor to see the burn chamber. When it is full of plasma, press the igniter button.</li> <li>Setup the SMES cells in the North West of Engineering and set an input of half the max; and an output that is half the input.</li></ol>Well done, you should have a functioning generator generating power. If the generator stops working, and there is enough gas and it's hot and cold, it might mean there is too much pressure and you need to turn on the pump that is connected to the red and yellow pipes to release the pressure. Make sure you don't take out too much pressure though.<br>You optimize the generator you must work out how much power your station is using and lowering the circulation pumps enough so that the generator doesn't create excess power, and it will allow the generator to powering the station for a longer duration, without having to replace the canisters. "
|
||||
6
_maps/map_files/MiniStation/readme.dm
Normal file
6
_maps/map_files/MiniStation/readme.dm
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
The contents of these files should not be ticked/included while compiling.
|
||||
|
||||
These files are only included, and compiled, when \_maps\ministation.dm is included; as these files are necessary to run the MiniStation mod.
|
||||
You do not have to tick them yourself, it will be automatically done by the ministation.dm file.
|
||||
*/
|
||||
38
_maps/map_files/MiniStation/supplypacks.dm
Normal file
38
_maps/map_files/MiniStation/supplypacks.dm
Normal file
@@ -0,0 +1,38 @@
|
||||
/datum/supply_packs/engineering/oxygen
|
||||
name = "Oxygen Canister"
|
||||
contains = list(/obj/machinery/portable_atmospherics/canister/oxygen)
|
||||
cost = 15
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "oxygen canister crate"
|
||||
|
||||
/datum/supply_packs/engineering/toxins
|
||||
name = "Toxins Canister"
|
||||
contains = list(/obj/machinery/portable_atmospherics/canister/toxins)
|
||||
cost = 30
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "toxins canister crate"
|
||||
|
||||
/datum/supply_packs/engineering/nitrogen
|
||||
name = "Nitrogen Canister"
|
||||
contains = list(/obj/machinery/portable_atmospherics/canister/nitrogen)
|
||||
cost = 20
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "nitrogen canister crate"
|
||||
|
||||
/datum/supply_packs/engineering/carbon_dio
|
||||
name = "Carbon Dioxide Canister"
|
||||
contains = list(/obj/machinery/portable_atmospherics/canister/carbon_dioxide)
|
||||
cost = 35
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "carbon dioxide canister crate"
|
||||
|
||||
|
||||
/obj/machinery/hydroponics/unattached
|
||||
anchored = 0
|
||||
|
||||
/datum/supply_packs/organic/hydroponics/hydro_tray
|
||||
name = "Hydroponics Tray"
|
||||
contains = list(/obj/machinery/hydroponics/unattached)
|
||||
cost = 10
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "hydroponics tray crate"
|
||||
18
_maps/map_files/MiniStation/telecomms.dm
Normal file
18
_maps/map_files/MiniStation/telecomms.dm
Normal file
@@ -0,0 +1,18 @@
|
||||
/obj/machinery/telecomms/receiver/preset_left/ministation
|
||||
name = "Receiver"
|
||||
freq_listening = list()
|
||||
|
||||
/obj/machinery/telecomms/bus/preset_one/ministation
|
||||
name = "Bus"
|
||||
autolinkers = list("processor1", "common")
|
||||
freq_listening = list()
|
||||
|
||||
/obj/machinery/telecomms/processor/preset_one/ministation
|
||||
name = "Processor"
|
||||
|
||||
/obj/machinery/telecomms/server/presets/common/ministation/New()
|
||||
..()
|
||||
freq_listening = list()
|
||||
|
||||
/obj/machinery/telecomms/broadcaster/preset_left/ministation
|
||||
name = "Broadcaster"
|
||||
37
_maps/map_files/MiniStation/uplink_item.dm
Normal file
37
_maps/map_files/MiniStation/uplink_item.dm
Normal file
@@ -0,0 +1,37 @@
|
||||
// Modified uplink items to discourage tator murderboning
|
||||
|
||||
/datum/uplink_item/dangerous/revolver/New()
|
||||
..()
|
||||
cost = 10
|
||||
|
||||
/datum/uplink_item/dangerous/crossbow/New()
|
||||
..()
|
||||
cost = 8
|
||||
|
||||
/datum/uplink_item/dangerous/sword/New()
|
||||
..()
|
||||
cost = 7
|
||||
|
||||
/datum/uplink_item/dangerous/syndicate_minibomb/New()
|
||||
..()
|
||||
cost = 6
|
||||
|
||||
/datum/uplink_item/stealthy_weapons/para_pen/New()
|
||||
..()
|
||||
item = null // Disabled
|
||||
|
||||
/datum/uplink_item/stealthy_tools/syndigolashes/New()
|
||||
..()
|
||||
cost = 5
|
||||
|
||||
/datum/uplink_item/device_tools/plastic_explosives/New()
|
||||
..()
|
||||
item = null // Disabled
|
||||
|
||||
/datum/uplink_item/device_tools/singularity_beacon/New()
|
||||
..()
|
||||
cost = 4
|
||||
|
||||
/datum/uplink_item/device_tools/syndicate_bomb/New()
|
||||
..()
|
||||
item = null // Disabled
|
||||
@@ -119,7 +119,7 @@
|
||||
"aco" = (/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/security/warden)
|
||||
"acp" = (/turf/simulated/floor{icon_state = "warning"},/area/security/warden)
|
||||
"acq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "warningcorner"; dir = 1},/area/security/warden)
|
||||
"acr" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/warden)
|
||||
"acr" = (/obj/machinery/power/apc{cell_type = 5000; dir = 4; name = "Armory APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/warden)
|
||||
"acs" = (/obj/machinery/camera{c_tag = "Head of Security's Office"; dir = 4; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/carpet,/area/security/hos)
|
||||
"act" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/carpet,/area/security/hos)
|
||||
"acu" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/carpet,/area/security/hos)
|
||||
@@ -962,9 +962,9 @@
|
||||
"asz" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/clothing/head/welding,/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"asA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{dir = 1; name = "EVA APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"asB" = (/obj/machinery/alarm{pixel_y = 23},/obj/item/device/radio/off,/obj/item/device/assembly/timer,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"asC" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
|
||||
"asC" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/machinery/cell_charger,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
|
||||
"asD" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/ai_monitored/storage/eva)
|
||||
"asE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
|
||||
"asE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/sign/securearea{pixel_y = 32},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
|
||||
"asF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/multitool,/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"asG" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"asH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
@@ -1081,7 +1081,7 @@
|
||||
"auO" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"auP" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva)
|
||||
"auQ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/ai_monitored/storage/eva)
|
||||
"auR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
|
||||
"auR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
|
||||
"auS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
"auT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva)
|
||||
"auU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/fore)
|
||||
@@ -1115,7 +1115,7 @@
|
||||
"avw" = (/obj/machinery/power/apc{dir = 1; name = "Vault APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "vault"; dir = 10},/area/security/nuke_storage)
|
||||
"avx" = (/obj/machinery/computer/secure_data/detective_computer,/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/security/nuke_storage)
|
||||
"avy" = (/obj/machinery/gateway{dir = 10},/turf/simulated/floor{icon_state = "vault"; dir = 4},/area/gateway)
|
||||
"avz" = (/obj/machinery/gateway,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/gateway)
|
||||
"avz" = (/obj/machinery/gateway,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "vault"; dir = 8},/area/gateway)
|
||||
"avA" = (/obj/machinery/gateway{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/gateway)
|
||||
"avB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/requests_console{department = "EVA"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva)
|
||||
"avC" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/ai_monitored/storage/eva)
|
||||
@@ -1250,7 +1250,7 @@
|
||||
"ayb" = (/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/checkpoint2)
|
||||
"ayc" = (/obj/machinery/door/airlock/maintenance{name = "Security Maintenance"; req_access_txt = "1"},/turf/simulated/floor/plating,/area/security/checkpoint2)
|
||||
"ayd" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"aye" = (/obj/machinery/power/apc{dir = 1; name = "Arrivals North Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"aye" = (/obj/machinery/power/apc{dir = 1; name = "Arrivals North Maintenance APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"ayf" = (/obj/machinery/camera{c_tag = "Fore Port Solar Access"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"ayg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"ayh" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/fpmaint)
|
||||
@@ -1324,7 +1324,7 @@
|
||||
"azx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
|
||||
"azy" = (/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/plating,/area/maintenance/fpmaint2)
|
||||
"azz" = (/obj/machinery/power/apc{dir = 4; name = "Primary Tool Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/primary)
|
||||
"azA" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/storage/primary)
|
||||
"azA" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/storage/primary)
|
||||
"azB" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/storage/primary)
|
||||
"azC" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/storage/primary)
|
||||
"azD" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/storage/primary)
|
||||
@@ -1517,7 +1517,7 @@
|
||||
"aDi" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/turf/simulated/floor{icon_state = "bot"},/area/storage/primary)
|
||||
"aDj" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor,/area/storage/primary)
|
||||
"aDk" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/space,/area)
|
||||
"aDl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/hallway/primary/port)
|
||||
"aDl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/hallway/primary/port)
|
||||
"aDm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/hallway/primary/port)
|
||||
"aDn" = (/obj/machinery/door/poddoor/shutters{id = "stationawaygate"; name = "Gateway Access Shutters"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/gateway)
|
||||
"aDo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/door_control{id = "stationawaygate"; name = "Gateway Access Shutter Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "31"},/turf/simulated/floor,/area/gateway)
|
||||
@@ -1937,7 +1937,7 @@
|
||||
"aLm" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/crew_quarters/locker)
|
||||
"aLn" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor,/area/crew_quarters/locker)
|
||||
"aLo" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/storage/art)
|
||||
"aLp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/table,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/obj/item/weapon/airlock_painter,/turf/simulated/floor,/area/storage/art)
|
||||
"aLp" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/obj/item/weapon/airlock_painter,/turf/simulated/floor,/area/storage/art)
|
||||
"aLq" = (/turf/simulated/floor,/area/storage/art)
|
||||
"aLr" = (/obj/machinery/light/small{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/storage/art)
|
||||
"aLs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/port)
|
||||
@@ -1950,7 +1950,7 @@
|
||||
"aLz" = (/obj/item/weapon/wrench,/obj/structure/table/reinforced,/obj/item/device/assembly/timer,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/turf/simulated/floor,/area/bridge)
|
||||
"aLA" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor{icon_state = "yellow"; dir = 10},/area/bridge)
|
||||
"aLB" = (/obj/machinery/computer/station_alert,/turf/simulated/floor{icon_state = "yellow"},/area/bridge)
|
||||
"aLC" = (/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/bridge)
|
||||
"aLC" = (/obj/machinery/computer/monitor,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/bridge)
|
||||
"aLD" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/bridge)
|
||||
"aLE" = (/obj/machinery/computer/communications,/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/bridge)
|
||||
"aLF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/table/reinforced,/obj/item/weapon/storage/box/PDAs{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/ids,/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/bridge)
|
||||
@@ -2003,7 +2003,7 @@
|
||||
"aMA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port)
|
||||
"aMB" = (/obj/structure/closet/wardrobe/mixed,/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/turf/simulated/floor,/area/crew_quarters/locker)
|
||||
"aMC" = (/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor,/area/crew_quarters/locker)
|
||||
"aMD" = (/obj/structure/table,/obj/item/weapon/cable_coil/random,/obj/item/weapon/cable_coil/random,/turf/simulated/floor,/area/storage/art)
|
||||
"aMD" = (/obj/structure/table,/obj/item/stack/cable_coil/random,/obj/item/stack/cable_coil/random,/turf/simulated/floor,/area/storage/art)
|
||||
"aME" = (/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency2)
|
||||
"aMF" = (/turf/simulated/floor/plating,/area/storage/emergency2)
|
||||
"aMG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency2)
|
||||
@@ -2384,7 +2384,7 @@
|
||||
"aTR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall,/area/bridge/meeting_room)
|
||||
"aTS" = (/turf/simulated/wall/r_wall,/area/bridge/meeting_room)
|
||||
"aTT" = (/obj/effect/landmark{name = "tripai"},/obj/item/device/radio/intercom{broadcasting = 1; freerange = 1; listening = 1; name = "Common Channel"; pixel_y = 25},/obj/item/device/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 28; pixel_y = 5},/obj/item/device/radio/intercom{anyai = 1; freerange = 1; listening = 0; name = "Custom Channel"; pixel_x = -27; pixel_y = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
|
||||
"aTU" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
|
||||
"aTU" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai)
|
||||
"aTV" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
|
||||
"aTW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
|
||||
"aTX" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/crew_quarters/captain)
|
||||
@@ -2758,7 +2758,7 @@
|
||||
"bbb" = (/obj/structure/table/woodentable,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bbc" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/hallway/primary/central)
|
||||
"bbd" = (/obj/structure/closet/secure_closet/chemical,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
|
||||
"bbe" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
|
||||
"bbe" = (/obj/machinery/power/apc{dir = 1; name = "Chemistry APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
|
||||
"bbf" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = list("SS13")},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry)
|
||||
"bbg" = (/obj/machinery/chem_dispenser,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/chemistry)
|
||||
"bbh" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 5; icon_state = "whiteyellow"},/area/medical/chemistry)
|
||||
@@ -2772,7 +2772,7 @@
|
||||
"bbp" = (/obj/structure/filingcabinet,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint/medical)
|
||||
"bbq" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue)
|
||||
"bbr" = (/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue)
|
||||
"bbs" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue)
|
||||
"bbs" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue)
|
||||
"bbt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue)
|
||||
"bbu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/morgue)
|
||||
"bbv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/storage/emergency)
|
||||
@@ -2850,7 +2850,7 @@
|
||||
"bcP" = (/turf/simulated/floor,/area/assembly/chargebay)
|
||||
"bcQ" = (/obj/machinery/door_control{dir = 2; id = "Skynet_launch"; name = "Mech Bay Door Control"; pixel_x = 6; pixel_y = 24},/turf/simulated/floor{icon_state = "warningcorner"; dir = 8},/area/assembly/chargebay)
|
||||
"bcR" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/assembly/chargebay)
|
||||
"bcS" = (/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bcS" = (/obj/machinery/power/apc{dir = 8; name = "Robotics Lab APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bcT" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bcU" = (/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics)
|
||||
"bcV" = (/obj/machinery/camera{c_tag = "Robotics Lab"; dir = 2; network = list("SS13","RD")},/obj/machinery/door_control{dir = 2; id = "robotics"; name = "Shutters Control Button"; pixel_x = 6; pixel_y = 24},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/assembly/robotics)
|
||||
@@ -2900,7 +2900,7 @@
|
||||
"bdN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/maintcentral)
|
||||
"bdO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/maintcentral)
|
||||
"bdP" = (/obj/item/device/flashlight/lamp,/turf/simulated/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/toxins/test_area)
|
||||
"bdQ" = (/obj/machinery/power/apc{dir = 1; name = "Bridge Maintenance APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/maintcentral)
|
||||
"bdQ" = (/obj/machinery/power/apc{dir = 1; name = "Bridge Maintenance APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/maintcentral)
|
||||
"bdR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/wardrobe/black,/turf/simulated/floor/plating,/area/maintenance/maintcentral)
|
||||
"bdS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/bridge/meeting_room)
|
||||
"bdT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/wood,/area/bridge/meeting_room)
|
||||
@@ -3091,7 +3091,7 @@
|
||||
"bhw" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Mech Bay"; dir = 4},/turf/simulated/floor,/area/assembly/chargebay)
|
||||
"bhx" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/assembly/chargebay)
|
||||
"bhy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/assembly/robotics)
|
||||
"bhz" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/weapon/cable_coil,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor,/area/assembly/robotics)
|
||||
"bhz" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor,/area/assembly/robotics)
|
||||
"bhA" = (/obj/structure/stool,/turf/simulated/floor,/area/assembly/robotics)
|
||||
"bhB" = (/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics)
|
||||
"bhC" = (/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/assembly/robotics)
|
||||
@@ -3229,7 +3229,7 @@
|
||||
"bke" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"},/area/medical/medbay)
|
||||
"bkf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics)
|
||||
"bkg" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_medsci,/obj/item/device/flashlight/pen{pixel_x = 0},/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bkh" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bkh" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bki" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics)
|
||||
"bkj" = (/obj/machinery/dna_scannernew,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/genetics)
|
||||
"bkk" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/medical/genetics)
|
||||
@@ -3251,7 +3251,7 @@
|
||||
"bkA" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bkB" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large{pixel_x = -3; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 8; pixel_y = 2},/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bkC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bkD" = (/obj/structure/table,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bkD" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab)
|
||||
"bkE" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Research Division"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/toxins/misc_lab{name = "\improper Research Lounge"})
|
||||
"bkF" = (/turf/simulated/wall,/area/toxins/misc_lab{name = "\improper Research Lounge"})
|
||||
"bkG" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/simulated/floor/plating,/area/quartermaster/storage)
|
||||
@@ -3650,7 +3650,7 @@
|
||||
"bsj" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "cafeteria"},/area/toxins/misc_lab{name = "\improper Research Lounge"})
|
||||
"bsk" = (/obj/machinery/vending/cigarette,/turf/simulated/floor{icon_state = "cafeteria"},/area/toxins/misc_lab{name = "\improper Research Lounge"})
|
||||
"bsl" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/requests_console{department = "Cargo Bay"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/item/weapon/coin/silver,/turf/simulated/floor{dir = 9; icon_state = "brown"},/area/quartermaster/qm)
|
||||
"bsm" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/qm)
|
||||
"bsm" = (/obj/machinery/power/apc{dir = 1; name = "Quartermaster APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/qm)
|
||||
"bsn" = (/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/qm)
|
||||
"bso" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/qm)
|
||||
"bsp" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{dir = 1; icon_state = "brown"},/area/quartermaster/qm)
|
||||
@@ -3943,7 +3943,7 @@
|
||||
"bxQ" = (/obj/structure/table,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxR" = (/obj/structure/table,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/wirecutters,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxS" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxT" = (/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Tech Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxT" = (/obj/machinery/camera{c_tag = "Tech Storage"; dir = 2},/obj/machinery/power/apc{dir = 1; name = "Tech Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxU" = (/obj/structure/table,/obj/item/device/analyzer,/obj/item/device/healthanalyzer,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxV" = (/obj/structure/table,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bxW" = (/turf/simulated/floor/plating,/area/storage/tech)
|
||||
@@ -4010,12 +4010,12 @@
|
||||
"bzf" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bzg" = (/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j1s"; sortType = 15},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bzh" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bzi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzm" = (/obj/structure/table,/obj/item/device/aicard,/obj/item/weapon/aiModule/reset,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzn" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzn" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = -3; pixel_y = 3},/obj/item/stack/cable_coil,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzp" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bzq" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/plating,/area/storage/tech)
|
||||
@@ -4056,7 +4056,7 @@
|
||||
"bzZ" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bAa" = (/obj/machinery/atmospherics/unary/outlet_injector{name = "Acid-Proof Air Injector"; icon_state = "on"; dir = 2; unacidable = 1; on = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bAb" = (/obj/item/device/radio/beacon,/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bAc" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/weapon/cable_coil,/obj/item/device/multitool,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bAc" = (/obj/structure/table,/obj/machinery/cell_charger{pixel_y = 5},/obj/item/stack/cable_coil,/obj/item/device/multitool,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bAd" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
|
||||
"bAe" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
|
||||
"bAf" = (/obj/effect/decal/cleanable/oil,/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage)
|
||||
@@ -4088,7 +4088,7 @@
|
||||
"bAF" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bAG" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bAH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bAI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/grille,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bAI" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/structure/grille,/turf/simulated/floor/plating,/area/storage/tech)
|
||||
"bAJ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/circuitboard/borgupload{pixel_x = -1; pixel_y = 1},/obj/item/weapon/circuitboard/aiupload{pixel_x = 2; pixel_y = -2},/turf/simulated/floor,/area/storage/tech)
|
||||
"bAK" = (/obj/machinery/camera{c_tag = "Secure Tech Storage"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/storage/tech)
|
||||
"bAL" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/storage/tech)
|
||||
@@ -4181,7 +4181,7 @@
|
||||
"bCu" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/aft)
|
||||
"bCv" = (/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"bCw" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/turf/simulated/floor/plating,/area/janitor)
|
||||
"bCx" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Maintenance APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bCx" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Maintenance APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bCy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bCz" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bCA" = (/obj/structure/disposalpipe/segment,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
@@ -4275,9 +4275,9 @@
|
||||
"bEk" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bEl" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bEm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/toxins/xenobiology)
|
||||
"bEn" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/shieldwallgen{req_access = list(55)},/turf/simulated/floor/plating,/area/toxins/xenobiology)
|
||||
"bEn" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/shieldwallgen{req_access = list(55)},/turf/simulated/floor/plating,/area/toxins/xenobiology)
|
||||
"bEo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bEp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bEp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bEq" = (/obj/machinery/door/window/southleft{dir = 1; name = "Test Chamber"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bEr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
"bEs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/door/poddoor/preopen{id = "misclab"; name = "test chamber blast door"},/turf/simulated/floor/engine,/area/toxins/xenobiology)
|
||||
@@ -4421,7 +4421,7 @@
|
||||
"bHa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bHb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/junction,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
|
||||
"bHc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/toxins/xenobiology)
|
||||
"bHd" = (/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
|
||||
"bHd" = (/obj/machinery/power/apc{dir = 8; name = "Xenobiology APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
|
||||
"bHe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
|
||||
"bHf" = (/obj/machinery/atmospherics/pipe/simple/general/visible,/obj/structure/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
|
||||
"bHg" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology)
|
||||
@@ -4729,7 +4729,7 @@
|
||||
"bMW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"bMX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint2)
|
||||
"bMY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
|
||||
"bMZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads)
|
||||
"bMZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads)
|
||||
"bNa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/crew_quarters/heads)
|
||||
"bNb" = (/obj/structure/table/reinforced,/obj/machinery/door/window/northleft{dir = 8; icon_state = "left"; name = "Reception Window"; req_access_txt = "0"},/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 4; icon_state = "rightsecure"; name = "Head of Personnel's Desk"; req_access_txt = "57"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "hop"; layer = 2.9; name = "Privacy Door"; opacity = 0},/turf/simulated/floor,/area/crew_quarters/heads)
|
||||
"bNc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor/shutters/preopen{id = "hopqueue"; name = "HoP Queue Shutters"},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/hallway/primary/central)
|
||||
@@ -4743,7 +4743,7 @@
|
||||
"bNk" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating,/area/construction)
|
||||
"bNl" = (/obj/machinery/camera{c_tag = "Construction Area"; dir = 1},/turf/simulated/floor/plating,/area/construction)
|
||||
"bNm" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/hazardvest,/turf/simulated/floor/plating,/area/construction)
|
||||
"bNn" = (/obj/structure/table,/obj/item/weapon/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/construction)
|
||||
"bNn" = (/obj/structure/table,/obj/item/stack/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/construction)
|
||||
"bNo" = (/obj/structure/table,/turf/simulated/floor/plating,/area/construction)
|
||||
"bNp" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/table,/obj/item/weapon/tank/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/turf/simulated/floor,/area/atmos)
|
||||
"bNq" = (/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/simulated/floor,/area/atmos)
|
||||
@@ -5016,7 +5016,7 @@
|
||||
"bSx" = (/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/wall/r_wall,/area/atmos)
|
||||
"bSy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos)
|
||||
"bSz" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/atmos)
|
||||
"bSA" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint/engineering)
|
||||
"bSA" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Security APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/checkpoint/engineering)
|
||||
"bSB" = (/obj/machinery/requests_console{department = "Security"; departmentType = 5; pixel_y = 30},/obj/structure/closet/secure_closet/security/engine,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/checkpoint/engineering)
|
||||
"bSC" = (/obj/structure/filingcabinet,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/checkpoint/engineering)
|
||||
"bSD" = (/obj/structure/closet/fireaxecabinet{pixel_x = -32; pixel_y = 0},/turf/simulated/floor,/area/atmos)
|
||||
@@ -5191,7 +5191,7 @@
|
||||
"bVQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 5},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft)
|
||||
"bVR" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft)
|
||||
"bVS" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/camera{c_tag = "Aft Primary Hallway 1"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
|
||||
"bVT" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Foyer APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/engine/break_room)
|
||||
"bVT" = (/obj/machinery/power/apc{dir = 8; name = "Engineering Foyer APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/engine/break_room)
|
||||
"bVU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/break_room)
|
||||
"bVV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/checkpoint/engineering)
|
||||
"bVW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/checkpoint/engineering)
|
||||
@@ -5258,7 +5258,7 @@
|
||||
"bXf" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area)
|
||||
"bXg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/port)
|
||||
"bXh" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bXi" = (/obj/item/weapon/cable_coil{amount = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bXi" = (/obj/item/stack/cable_coil{amount = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bXj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/aft)
|
||||
"bXk" = (/obj/machinery/telecomms/server/presets/supply,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server)
|
||||
"bXl" = (/obj/machinery/telecomms/bus/preset_two,/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Mainframe Floor"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server)
|
||||
@@ -5350,7 +5350,7 @@
|
||||
"bYT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering)
|
||||
"bYU" = (/turf/simulated/wall/r_wall,/area/engine/chiefs_office)
|
||||
"bYV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/turf/simulated/floor/plating,/area/engine/chiefs_office)
|
||||
"bYW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/turf/simulated/floor/plating,/area/engine/chiefs_office)
|
||||
"bYW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/turf/simulated/floor/plating,/area/engine/chiefs_office)
|
||||
"bYX" = (/obj/machinery/door/poddoor/preopen{id = "Engineering"; name = "engineering security door"},/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/chiefs_office)
|
||||
"bYY" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "yellow"; dir = 10},/area/engine/break_room)
|
||||
"bYZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "yellow"},/area/engine/break_room)
|
||||
@@ -5431,7 +5431,7 @@
|
||||
"caw" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/lighter/zippo,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/item/weapon/stamp/ce,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
|
||||
"cax" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
|
||||
"cay" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/elite,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
|
||||
"caz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office)
|
||||
"caz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office)
|
||||
"caA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering)
|
||||
"caB" = (/turf/simulated/floor,/area/engine/engineering)
|
||||
"caC" = (/obj/machinery/camera{c_tag = "Engineering Access"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/closet/radiation,/turf/simulated/floor,/area/engine/engineering)
|
||||
@@ -5694,13 +5694,13 @@
|
||||
"cfz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cfA" = (/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cfB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/shutters/preopen{id = "Singularity"; name = "radiation shutters"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cfC" = (/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering)
|
||||
"cfC" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering)
|
||||
"cfD" = (/obj/structure/stool,/turf/simulated/floor,/area/engine/engineering)
|
||||
"cfE" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cfF" = (/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/engine/engineering)
|
||||
"cfG" = (/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cfH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering)
|
||||
"cfI" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/engine/engineering)
|
||||
"cfI" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/engine/engineering)
|
||||
"cfJ" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/obj/item/clothing/ears/earmuffs{pixel_x = -3; pixel_y = -2},/obj/machinery/light,/turf/simulated/floor,/area/engine/engineering)
|
||||
"cfK" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/engine/engineering)
|
||||
"cfL" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/engine/engineering)
|
||||
@@ -6415,7 +6415,7 @@
|
||||
"cts" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
|
||||
"ctt" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
|
||||
"ctu" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/mushroompizzaslice,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
|
||||
"ctv" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 3},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
|
||||
"ctv" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2; step_x = 0},/obj/item/toy/cards/deck/syndicate{icon_state = "deck_syndicate_full"; pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
|
||||
"ctw" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{tag = "icon-podhatch (WEST)"; icon_state = "podhatch"; dir = 8},/area/syndicate_mothership)
|
||||
"ctx" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/syndicate_mothership)
|
||||
"cty" = (/turf/unsimulated/floor,/area/syndicate_mothership)
|
||||
@@ -6479,7 +6479,7 @@
|
||||
"cuE" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"cuF" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/assembly/infra,/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"cuG" = (/obj/structure/table,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"cuH" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"cuH" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/glasses/night,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start)
|
||||
"cuI" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
|
||||
"cuJ" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
|
||||
"cuK" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
|
||||
@@ -6690,7 +6690,7 @@
|
||||
"cyH" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyI" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyJ" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyK" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/weapon/cable_coil/cut,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyK" = (/obj/structure/cable,/obj/structure/computerframe{anchored = 1},/obj/item/stack/cable_coil/cut,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyL" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyM" = (/obj/structure/rack,/obj/item/clothing/suit/space/rig/medical,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
"cyN" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/derelict/ship)
|
||||
@@ -6739,7 +6739,7 @@
|
||||
"czE" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/airless,/area/tcommsat/chamber)
|
||||
"czF" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"czG" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"czH" = (/obj/item/weapon/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"czH" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"czI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
|
||||
"czJ" = (/obj/structure/window/reinforced{dir = 8},/turf/space,/area)
|
||||
"czK" = (/obj/item/weapon/folder/yellow,/turf/simulated/floor/airless,/area/tcommsat/chamber)
|
||||
@@ -7010,9 +7010,9 @@
|
||||
"cEP" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access)
|
||||
"cEQ" = (/obj/machinery/door/airlock/command{name = "E.V.A."; req_access = null; req_access_txt = "18"},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"cER" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"cES" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/plating/airless,/area)
|
||||
"cES" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area)
|
||||
"cET" = (/turf/simulated/floor/airless{icon_state = "solarpanel"},/area)
|
||||
"cEU" = (/obj/item/weapon/cable_coil/cut,/turf/space,/area)
|
||||
"cEU" = (/obj/item/stack/cable_coil/cut,/turf/space,/area)
|
||||
"cEV" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"cEW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/derelict/bridge/access)
|
||||
"cEX" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
@@ -7033,14 +7033,14 @@
|
||||
"cFm" = (/obj/structure/computerframe,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFn" = (/obj/structure/table,/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFo" = (/obj/machinery/computer/security,/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFp" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFp" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFq" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFr" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFs" = (/obj/item/weapon/grenade/empgrenade,/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFt" = (/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cFu" = (/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
|
||||
"cFv" = (/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
|
||||
"cFw" = (/obj/item/weapon/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cFw" = (/obj/item/stack/cable_coil/cut,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cFx" = (/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"cFy" = (/turf/simulated/wall,/area/derelict/singularity_engine)
|
||||
"cFz" = (/obj/item/weapon/reagent_containers/food/drinks/beer,/turf/simulated/floor,/area/derelict/bridge)
|
||||
@@ -7071,7 +7071,7 @@
|
||||
"cFY" = (/obj/structure/stool,/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cFZ" = (/obj/structure/table,/obj/item/weapon/cell,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor,/area/derelict/bridge)
|
||||
"cGa" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cGb" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
|
||||
"cGb" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged4"},/area/derelict/singularity_engine)
|
||||
"cGc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"cGd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/derelict/bridge/access)
|
||||
"cGe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/derelict/bridge/access)
|
||||
@@ -7111,11 +7111,11 @@
|
||||
"cGM" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cGN" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"cGO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"cGP" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
|
||||
"cGP" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
|
||||
"cGQ" = (/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGR" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGS" = (/obj/structure/table,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGT" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGT" = (/obj/structure/table,/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGU" = (/obj/structure/table,/obj/item/weapon/cell{charge = 100; maxcharge = 15000},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cGW" = (/turf/simulated/floor/airless{icon_state = "circuit"},/area/derelict/singularity_engine)
|
||||
@@ -7125,8 +7125,8 @@
|
||||
"cHa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless,/area/derelict/bridge/access)
|
||||
"cHb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cHc" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/bridge/access)
|
||||
"cHd" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cHe" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cHd" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cHe" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cHf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cHg" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cHh" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "circuit"},/area/derelict/singularity_engine)
|
||||
@@ -7143,7 +7143,7 @@
|
||||
"cHs" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
|
||||
"cHt" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"cHu" = (/obj/item/stack/rods,/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cHv" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"cHv" = (/obj/item/weapon/shard{icon_state = "medium"},/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
|
||||
"cHw" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
|
||||
"cHx" = (/turf/simulated/wall,/area/derelict/hallway/primary)
|
||||
"cHy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless{icon_state = "damaged3"},/area/derelict/hallway/primary)
|
||||
@@ -7363,7 +7363,7 @@
|
||||
"cLE" = (/obj/structure/table,/turf/simulated/floor/airless,/area)
|
||||
"cLF" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless,/area)
|
||||
"cLG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area)
|
||||
"cLH" = (/obj/structure/lattice,/obj/item/weapon/cable_coil/cut,/turf/space,/area)
|
||||
"cLH" = (/obj/structure/lattice,/obj/item/stack/cable_coil/cut,/turf/space,/area)
|
||||
"cLI" = (/obj/structure/girder,/turf/simulated/floor/plating,/area/derelict/arrival)
|
||||
"cLJ" = (/obj/structure/stool,/turf/simulated/floor/airless,/area/derelict/hallway/primary)
|
||||
"cLK" = (/obj/machinery/door/airlock/maintenance{name = "Atmospherics Access"; req_access_txt = "24"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
|
||||
@@ -7402,7 +7402,7 @@
|
||||
"cMr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/wirecutters,/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"cMs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
|
||||
"cMt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"cMu" = (/obj/item/weapon/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
|
||||
"cMu" = (/obj/item/stack/cable_coil/cut,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
|
||||
"cMv" = (/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"cMw" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/airless,/area/derelict/hallway/secondary)
|
||||
"cMx" = (/obj/machinery/door/airlock/maintenance{name = "Aux Storage"; req_access_txt = "23"},/turf/simulated/floor/plating/airless,/area/derelict/hallway/secondary)
|
||||
@@ -7811,9 +7811,9 @@
|
||||
"cUk" = (/obj/structure/lattice,/turf/space,/area/mine/unexplored)
|
||||
"cUl" = (/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
|
||||
"cUm" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/laborcamp/security)
|
||||
"cUn" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
|
||||
"cUn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
"cUo" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/wall,/area/mine/laborcamp/security)
|
||||
"cUp" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/turf/simulated/wall,/area/mine/laborcamp)
|
||||
"cUp" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUq" = (/turf/simulated/wall,/area/mine/laborcamp/security)
|
||||
"cUr" = (/obj/structure/girder,/turf/simulated/floor/plating{icon_plating = "asteroidplating"; icon_state = "asteroidplating"; temperature = 273.15},/area/mine/laborcamp/security)
|
||||
"cUs" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "2"},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
@@ -7822,7 +7822,7 @@
|
||||
"cUv" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUw" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUx" = (/obj/machinery/light{dir = 1},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=NMine"; location = "SHall"},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUy" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold{dir = 4},/turf/simulated/floor,/area/mine/laborcamp)
|
||||
"cUy" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUz" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp External Access"; req_access_txt = "2"},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUA" = (/obj/machinery/door/airlock/glass_security{name = "Labor Camp Monitoring"; req_access_txt = "2"},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cUB" = (/obj/machinery/atmospherics/pipe/simple{dir = 6},/turf/simulated/wall,/area/mine/laborcamp/security)
|
||||
@@ -7855,8 +7855,8 @@
|
||||
"cVc" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/asteroid/airless,/area/mine/explored)
|
||||
"cVd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
"cVe" = (/obj/structure/table,/obj/machinery/recharger,/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cVf" = (/obj/machinery/computer/secure_data,/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cVg" = (/obj/machinery/computer/security{name = "Labor Camp Monitoring"; network = list("Labor")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cVf" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple{dir = 10},/turf/simulated/floor,/area/mine/laborcamp)
|
||||
"cVg" = (/obj/machinery/atmospherics/pipe/manifold,/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cVh" = (/obj/machinery/computer/prisoner,/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cVi" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/turf/simulated/floor,/area/mine/laborcamp/security)
|
||||
"cVj" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
@@ -7865,8 +7865,8 @@
|
||||
"cVm" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact-f"},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
"cVn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
"cVo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
"cVp" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
|
||||
"cVq" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
|
||||
"cVp" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/mine/laborcamp/security)
|
||||
"cVq" = (/obj/effect/decal/remains/human,/turf/simulated/floor{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
|
||||
"cVr" = (/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 9},/area/mine/explored)
|
||||
"cVs" = (/turf/simulated/mineral/random/high_chance,/area/mine/unexplored)
|
||||
"cVt" = (/turf/simulated/mineral/random/high_chance,/area/mine/explored)
|
||||
@@ -7876,7 +7876,6 @@
|
||||
"cVx" = (/turf/simulated/floor/plating/airless,/area/mine/unexplored)
|
||||
"cVy" = (/turf/simulated/floor{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
|
||||
"cVz" = (/obj/item/clothing/under/soviet,/obj/item/clothing/head/ushanka,/turf/simulated/floor{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
|
||||
"cVA" = (/obj/effect/decal/remains,/turf/simulated/floor{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/explored)
|
||||
"cVB" = (/turf/simulated/mineral/random,/area)
|
||||
"cVC" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 8},/area/mine/explored)
|
||||
"cVD" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/airless{icon_state = "asteroidwarning"; dir = 4},/area/mine/explored)
|
||||
@@ -7894,7 +7893,7 @@
|
||||
"cVP" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored)
|
||||
"cVQ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/airless,/area/mine/explored)
|
||||
"cVR" = (/turf/simulated/floor/bluegrid,/area/mine/maintenance)
|
||||
"cVS" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor{icon_state = "dark"},/area/mine/maintenance)
|
||||
"cVS" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Mining Communications APC"; pixel_x = 1; pixel_y = 25},/turf/simulated/floor{icon_state = "dark"},/area/mine/maintenance)
|
||||
"cVT" = (/obj/machinery/telecomms/relay/preset/mining,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "vault"; dir = 1},/area/mine/maintenance)
|
||||
"cVU" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "dark"},/area/mine/maintenance)
|
||||
"cVV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/explored)
|
||||
@@ -8045,7 +8044,7 @@
|
||||
"cYK" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters)
|
||||
"cYL" = (/obj/machinery/door/airlock{name = "Toilet"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/mine/living_quarters)
|
||||
"cYM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/mine/living_quarters)
|
||||
"cYN" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/mine/living_quarters)
|
||||
"cYN" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Port Wing APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/mine/living_quarters)
|
||||
"cYO" = (/obj/machinery/camera{c_tag = "Crew Area Hallway"; network = list("MINE")},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor,/area/mine/living_quarters)
|
||||
"cYP" = (/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/mine/living_quarters)
|
||||
"cYQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters)
|
||||
@@ -8251,8 +8250,8 @@
|
||||
"dcU" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/closet/crate/internals,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/tank/emergency_oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
|
||||
"dcV" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
|
||||
"dcW" = (/obj/structure/rack{dir = 1},/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/weapon/storage/bag/ore,/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/item/weapon/shovel{attack_verb = list("ineffectively hit"); desc = "A large tool for digging and moving dirt. Was modified with extra safety, making it ineffective as a weapon."; force = 1; name = "safety shovel"; pixel_x = -5; throwforce = 1},/obj/item/weapon/pickaxe{attack_verb = list("ineffectively hit"); desc = "A pickaxe designed to be only effective at digging rock and ore, very ineffective as a weapon."; force = 1; name = "safety pickaxe"; pixel_x = 5; throwforce = 1},/obj/machinery/camera{c_tag = "Labor Camp Storage"; dir = 8; network = list("Labor")},/turf/simulated/floor{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
|
||||
"dcX" = (/obj/structure/table,/obj/item/toy/cards,/turf/simulated/floor,/area/security/prison)
|
||||
"dcY" = (/obj/structure/table/woodentable,/obj/item/toy/cards,/turf/simulated/floor,/area/crew_quarters/sleep)
|
||||
"dcX" = (/obj/structure/table,/obj/item/toy/cards/deck,/turf/simulated/floor,/area/security/prison)
|
||||
"dcY" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor,/area/crew_quarters/sleep)
|
||||
"dcZ" = (/obj/item/weapon/shard,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/airless,/area/AIsattele)
|
||||
"dda" = (/obj/structure/computerframe,/turf/simulated/floor/plating/airless,/area/AIsattele)
|
||||
"ddb" = (/obj/machinery/teleport/station,/turf/simulated/floor/plating/airless,/area/AIsattele)
|
||||
@@ -9376,18 +9375,18 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccSycSycSycTMcSAcTNcTvcTOcUccT
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcTKcTWcTVcTXcTRcSAcTicSAcSAcTPcOecSycUfcUecTYcSTcSTcSBcSBcUacSncRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcTLcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaacOEcOEcOEaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcSccSccSccSccSAcSAcTicUccUdcSybEKcSycTmcTmcTmcSBcSBcSBcSBcTJcRacRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaacOEcOEaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqaaaaaacSccUbcSAcSAcTibPbbmdbPbbOjcSycTlcTkcSBcSBcSBcSBcSOcSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcUkcUkcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUlcUlcUlcUlcUlcUmcUncUocUocUocUpcUqcUqcUrcSBcSTcSBcSBcSOcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUscUtcUtcUtcUucUvcUwcUxcUwcUwcUycUtcUzcTmcTmcSBcSBcSBcSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcTfcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUlcUlcUlcUlcUlcUmcVpcUqcUqcUqcSycUqcUqcUrcSBcSTcSBcSBcSOcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUscUtcUtcUtcUucUvcVgcUxcUwcUwcVfcUtcUzcTmcTmcSBcSBcSBcSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcRKcRKcRKcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcTfcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUlcUqcUqcUAcUqcUBcUqcUqcUCcUDcUEcUqcUqcTmcTmcSBcSBcSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaacOEaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcTfcQlcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUlcUFcUGcUHcUIcUJcUKcULcUMcUNcUOcSmcUocSlctUcUScSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaacOEcOEcOEaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcTTcUTcTUcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafcTqcTqcTqcTqcTqcUUcUVcUtcUWcUtcUXcUqcUYcUZcUZcVacVbcUqcSncSncSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaacOEcOEcOEaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcQlcTfcQlcVccRacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafcVdcVecVfcVgcVhcVicUqcVjcVkcVlcVmcVbcUqcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacVncVocVpcVqcUlcUlcUqcUqcUqcUqcUqcUqcUqcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcVrcSIcSJcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafcVdcVecUpcUycVhcVicUqcVjcVkcVlcVmcVbcUqcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaacVncVocUncUlcUlcUlcUqcUqcUqcUqcUqcUqcUqcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcVrcSIcSJcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSncSncSncSncSncSncSncSncSncSncSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcUkcUkcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcSEcSVcSGcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaacOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaacVsaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaacOEcVscVsaaaaaacOEcOEcOEcOEcOEcOEcOEcOEcOTcQlcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRPcRPcUjcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaacOEcOEcVsaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcTfcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRPcRPcSncRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaacOEcOEcVsaaaaaaaaacOEcOEcOEcOEcOEcOEcOEcOTcOTcQlcQlcTfcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOEcOTcQlcQlcTfcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOTcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaacOTcOTaaaaaaaaaaaaaaaaaacOEcOEcOEcOEcOEcOTcQlcQlcTfcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -9407,7 +9406,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcR
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOTcOTcQlcQlcTfcRtcRacOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOEcOEcOEcOTcQlcQlcVvcVwcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocRPcRPcRPcRPcRPcRPcVycRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOTcOTcOTcQlcQlcTfcQlcQlcOTcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocSocRPcRPcRPcRPcRPcVzcVAcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOTcQlcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocSocRPcRPcRPcRPcRPcVzcVqcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOTcQlcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQlcQlcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQlcQlcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSocSocSocSocSocSocSocSocRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcRPcSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocSocOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacQlcQlcQlcQlcQlcTfcQlcQlcQlcOTcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEcOEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#if !defined(MAP_FILE)
|
||||
|
||||
#include "map_files\MetaStation.v39B.II.dmm"
|
||||
#include "map_files\MetaStation.v39B.III.dmm"
|
||||
|
||||
#define MAP_FILE "MetaStation.v39B.II.dmm"
|
||||
#define MAP_FILE "MetaStation.v39B.III.dmm"
|
||||
#define MAP_NAME "MetaStation"
|
||||
|
||||
#elif !defined(MAP_OVERRIDE)
|
||||
|
||||
70
_maps/ministation.dm
Normal file
70
_maps/ministation.dm
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
MiniStation FAQ - Mod Created By Giacom
|
||||
|
||||
|
||||
What is it?
|
||||
|
||||
A mod of tgstation 13 that is modified for low population servers; with simplified jobs, maps, duties and command structure.
|
||||
|
||||
How do I run it?
|
||||
|
||||
Simply tick this file, and only this file in the _maps folder, then compile and you will be running MiniStation.
|
||||
|
||||
Who is the target audience?
|
||||
|
||||
Server hosters who want to host a server for a player count of around 5 to 20 people.
|
||||
|
||||
What about the map?
|
||||
|
||||
The map has been created from the ground up with population size in mind.
|
||||
|
||||
What about the jobs?
|
||||
|
||||
Many jobs have been combined or just plainly cut out. These are the remaining jobs with their duties next to them.
|
||||
|
||||
* Captain - Make sure your station is running.
|
||||
* HoP - You're second in command, protect the Captain and be his right hand man.
|
||||
* Cargo Tech x3 - Running cargo bay and mining minerals for the station.
|
||||
* Bartender - Keeping the bar, serving drinks and food. Hire the unemployeed to grow food for you, or do it yourself.
|
||||
* Janitor - Cleans the station, removes litter and empty trash bins to be recycled by the crusher.
|
||||
* Station Engineer x4 - Keeping the power running and fixing station damage.
|
||||
* Security Officer x4 - Protecting the crewmembers and serving space law.
|
||||
* Detective - Using forensic science to help security officers catch criminals.
|
||||
* Scientist x4 - Research and development of new technologies and create bombs.
|
||||
* Medical Doctor x4 - Healing the crew, performing surgeries and cloning dead crew.
|
||||
* Chemist - Creating useful chemicals for the crew to use.
|
||||
* Clown - Create laughter and boost the morale of the crew. Honk!
|
||||
* Assistant xInfinity - Not in charge at all.
|
||||
|
||||
There will be 26 job slots (not including Assistant) available on MiniStation; the HoP can add more from his ID computer.
|
||||
There is a more simplified command system, with the Captain being the big boss and the HoP being second in command.
|
||||
The heads will have control over all departments and jobs.
|
||||
|
||||
What else has changed?
|
||||
|
||||
Changes to the uplinks were made to discourage murderboning, the rest is the same.
|
||||
|
||||
*/
|
||||
|
||||
#if !defined(MAP_FILE)
|
||||
|
||||
#include "map_files\MiniStation\MiniStation.dmm"
|
||||
|
||||
#define MAP_FILE "MiniStation.dmm"
|
||||
#define MAP_NAME "MiniStation"
|
||||
|
||||
#if !defined(MAP_OVERRIDE_FILES)
|
||||
#define MAP_OVERRIDE_FILES
|
||||
#include "map_files\MiniStation\misc.dm"
|
||||
#include "map_files\MiniStation\supplypacks.dm"
|
||||
#include "map_files\MiniStation\telecomms.dm"
|
||||
#include "map_files\MiniStation\uplink_item.dm"
|
||||
#include "map_files\MiniStation\job\jobs.dm"
|
||||
#include "map_files\MiniStation\job\removed.dm"
|
||||
#endif
|
||||
|
||||
#elif !defined(MAP_OVERRIDE)
|
||||
|
||||
#warn a map has already been included, ignoring ministation.
|
||||
|
||||
#endif
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "map_files\tgstation.2.1.2.dmm"
|
||||
|
||||
#define MAP_FILE "tgstation.2.1.2.dmm"
|
||||
#define MAP_NAME "/tg/station 2"
|
||||
#define MAP_NAME "TGstation 2"
|
||||
|
||||
#elif !defined(MAP_OVERRIDE)
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
//node1, air1, network1 correspond to input
|
||||
//node2, air2, network2 correspond to output
|
||||
//node2, air2, network2 correspond to input
|
||||
//node1, air1, network1 correspond to output
|
||||
|
||||
|
||||
/obj/machinery/atmospherics/binary/circulator
|
||||
name = "circulator/heat exchanger"
|
||||
@@ -15,9 +16,12 @@
|
||||
anchored = 1.0
|
||||
density = 1
|
||||
|
||||
|
||||
proc/return_transfer_air()
|
||||
var/output_starting_pressure = air2.return_pressure()
|
||||
var/input_starting_pressure = air1.return_pressure()
|
||||
|
||||
|
||||
var/output_starting_pressure = air1.return_pressure()
|
||||
var/input_starting_pressure = air2.return_pressure()
|
||||
|
||||
if(output_starting_pressure >= input_starting_pressure-10)
|
||||
//Need at least 10 KPa difference to overcome friction in the mechanism
|
||||
@@ -25,17 +29,17 @@
|
||||
return null
|
||||
|
||||
//Calculate necessary moles to transfer using PV = nRT
|
||||
if(air1.temperature>0)
|
||||
if(air2.temperature>0)
|
||||
var/pressure_delta = (input_starting_pressure - output_starting_pressure)/2
|
||||
|
||||
var/transfer_moles = pressure_delta*air2.volume/(air1.temperature * R_IDEAL_GAS_EQUATION)
|
||||
var/transfer_moles = pressure_delta*air1.volume/(air2.temperature * R_IDEAL_GAS_EQUATION)
|
||||
|
||||
last_pressure_delta = pressure_delta
|
||||
|
||||
//world << "pressure_delta = [pressure_delta]; transfer_moles = [transfer_moles];"
|
||||
|
||||
//Actually transfer the gas
|
||||
var/datum/gas_mixture/removed = air1.remove(transfer_moles)
|
||||
var/datum/gas_mixture/removed = air2.remove(transfer_moles)
|
||||
|
||||
if(network1)
|
||||
network1.update = 1
|
||||
|
||||
@@ -41,8 +41,8 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
|
||||
var/turf/T
|
||||
var/safety = 0
|
||||
while(safety < 25)
|
||||
T = pick(get_area_turfs(destination))
|
||||
if(!H.Move(T))
|
||||
T = safepick(get_area_turfs(destination))
|
||||
if(T && !H.Move(T))
|
||||
safety += 1
|
||||
continue
|
||||
else
|
||||
@@ -112,17 +112,13 @@ var/list/sec_departments = list("engineering", "supply", "medical", "science")
|
||||
keyslot2 = new /obj/item/device/encryptionkey/headset_sci
|
||||
|
||||
/obj/item/clothing/under/rank/security/cargo/New()
|
||||
var/obj/item/clothing/tie/armband/cargo/A = new /obj/item/clothing/tie/armband/cargo
|
||||
hastie = A
|
||||
attachTie(new /obj/item/clothing/tie/armband/cargo)
|
||||
|
||||
/obj/item/clothing/under/rank/security/engine/New()
|
||||
var/obj/item/clothing/tie/armband/engine/A = new /obj/item/clothing/tie/armband/engine
|
||||
hastie = A
|
||||
attachTie(new /obj/item/clothing/tie/armband/engine)
|
||||
|
||||
/obj/item/clothing/under/rank/security/science/New()
|
||||
var/obj/item/clothing/tie/armband/science/A = new /obj/item/clothing/tie/armband/science
|
||||
hastie = A
|
||||
attachTie(new /obj/item/clothing/tie/armband/science)
|
||||
|
||||
/obj/item/clothing/under/rank/security/med/New()
|
||||
var/obj/item/clothing/tie/armband/medgreen/A = new /obj/item/clothing/tie/armband/medgreen
|
||||
hastie = A
|
||||
attachTie(new /obj/item/clothing/tie/armband/medgreen)
|
||||
@@ -23,5 +23,5 @@
|
||||
#define BE_ALIEN 64
|
||||
#define BE_PAI 128
|
||||
#define BE_CULTIST 256
|
||||
#define BE_MONKEY 512
|
||||
#define BE_BLOB 512
|
||||
#define BE_NINJA 1024
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
var/datum/surgery/S = new path()
|
||||
surgeries_list[S.name] = S
|
||||
|
||||
init_subtypes(/datum/table_recipe, table_recipes)
|
||||
|
||||
/* // Uncomment to debug chemical reaction list.
|
||||
/client/verb/debug_chemical_list()
|
||||
|
||||
|
||||
@@ -1113,7 +1113,7 @@ proc/oview_or_orange(distance = world.view , center = usr , type)
|
||||
|
||||
//Quick type checks for some tools
|
||||
var/global/list/common_tools = list(
|
||||
/obj/item/weapon/cable_coil,
|
||||
/obj/item/stack/cable_coil,
|
||||
/obj/item/weapon/wrench,
|
||||
/obj/item/weapon/weldingtool,
|
||||
/obj/item/weapon/screwdriver,
|
||||
|
||||
@@ -39,6 +39,6 @@ var/list/be_special_flags = list(
|
||||
"Alien Lifeform" = BE_ALIEN,
|
||||
"pAI" = BE_PAI,
|
||||
"Cultist" = BE_CULTIST,
|
||||
"Monkey" = BE_MONKEY,
|
||||
"Blob" = BE_BLOB,
|
||||
"Ninja" = BE_NINJA
|
||||
)
|
||||
|
||||
@@ -11,3 +11,4 @@ var/global/list/active_diseases = list()
|
||||
var/global/list/chemical_reactions_list //list of all /datum/chemical_reaction datums. Used during chemical reactions
|
||||
var/global/list/chemical_reagents_list //list of all /datum/reagent datums indexed by reagent id. Used by chemistry stuff
|
||||
var/global/list/surgeries_list = list() //list of all surgeries by name, associated with their path.
|
||||
var/global/list/table_recipes = list() //list of all table craft recipes
|
||||
@@ -79,7 +79,8 @@
|
||||
return
|
||||
|
||||
var/obj/item/W = get_active_hand()
|
||||
|
||||
|
||||
|
||||
if(W == A)
|
||||
next_move = world.time + 6
|
||||
if(W.flags&USEDELAY)
|
||||
@@ -91,10 +92,9 @@
|
||||
update_inv_r_hand(0)
|
||||
|
||||
return
|
||||
|
||||
|
||||
// operate two levels deep here (item in backpack in src; NOT item in box in backpack in src)
|
||||
if(A == loc || (A in loc) || (A in contents) || (A.loc in contents))
|
||||
|
||||
if(!isturf(A) && A == loc || (A in contents) || (A.loc in contents))
|
||||
// faster access to objects already on you
|
||||
if(A in contents)
|
||||
next_move = world.time + 6 // on your person
|
||||
@@ -119,12 +119,12 @@
|
||||
// Allows you to click on a box's contents, if that box is on the ground, but no deeper than that
|
||||
if(isturf(A) || isturf(A.loc) || (A.loc && isturf(A.loc.loc)))
|
||||
next_move = world.time + 10
|
||||
|
||||
if(A.Adjacent(src)) // see adjacent.dm
|
||||
if(W)
|
||||
if(W.flags&USEDELAY)
|
||||
next_move += 5
|
||||
|
||||
if(W.preattack(A,src,1,params)) //Weapon attack override,return 1 to exit
|
||||
return
|
||||
// Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example)
|
||||
var/resolved = A.attackby(W,src)
|
||||
if(!resolved && A && W)
|
||||
@@ -134,6 +134,8 @@
|
||||
return
|
||||
else // non-adjacent click
|
||||
if(W)
|
||||
if(W.preattack(A,src,0,params)) //Weapon attack override,return 1 to exit
|
||||
return
|
||||
W.afterattack(A,src,0,params) // 0: not Adjacent
|
||||
else
|
||||
RangedAttack(A, params)
|
||||
@@ -294,7 +296,7 @@
|
||||
|
||||
// Simple helper to face what you clicked on, in case it should be needed in more than one place
|
||||
/mob/proc/face_atom(var/atom/A)
|
||||
if( buckled || !A || !x || !y || !A.x || !A.y ) return
|
||||
if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y ) return
|
||||
var/dx = A.x - x
|
||||
var/dy = A.y - y
|
||||
if(!dx && !dy) // Wall items are graphically shifted but on the floor
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
/atom/proc/attackby(obj/item/W, mob/user)
|
||||
return
|
||||
/atom/movable/attackby(obj/item/W, mob/user)
|
||||
if(!(W.flags&NOBLUDGEON))
|
||||
if(W && !(W.flags&NOBLUDGEON))
|
||||
visible_message("<span class='danger'>[src] has been hit by [user] with [W].</span>")
|
||||
|
||||
/mob/living/attackby(obj/item/I, mob/user)
|
||||
@@ -20,17 +20,27 @@
|
||||
/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
return
|
||||
|
||||
// Overrides the weapon attack so it can attack any atoms like when we want to have an effect on an object independent of attackby
|
||||
// It is a powerfull proc but it should be used wisely, if there is other alternatives instead use those
|
||||
// If it returns 1 it exits click code. Always . = 1 at start of the function if you delete src.
|
||||
/obj/item/proc/preattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||
return
|
||||
|
||||
obj/item/proc/get_clamped_volume()
|
||||
if(src.force && src.w_class)
|
||||
return Clamp((src.force + src.w_class) * 4, 30, 100)// Add the item's force to its weight class and multiply by 4, then clamp the value between 30 and 100
|
||||
else if(!src.force && src.w_class)
|
||||
return Clamp(src.w_class * 6, 10, 100) // Multiply the item's weight class by 6, then clamp the value between 10 and 100
|
||||
|
||||
/obj/item/proc/attack(mob/living/M as mob, mob/living/user as mob, def_zone)
|
||||
|
||||
if (!istype(M)) // not sure if this is the right thing...
|
||||
return
|
||||
var/messagesource = M
|
||||
|
||||
if (istype(M,/mob/living/carbon/brain))
|
||||
messagesource = M:container
|
||||
if (hitsound)
|
||||
playsound(loc, hitsound, 50, 1, -1)
|
||||
if (hitsound && force > 0) //If an item's hitsound is defined and the item's force is greater than zero...
|
||||
playsound(loc, hitsound, get_clamped_volume(), 1, -1) //...play the item's hitsound at get_clamped_volume() with varying frequency and -1 extra range.
|
||||
else if (force == 0)//Otherwise, if the item's force is zero...
|
||||
playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1)//...play tap.ogg at get_clamped_volume()
|
||||
/////////////////////////
|
||||
user.lastattacked = M
|
||||
M.lastattacker = user
|
||||
@@ -119,15 +129,19 @@
|
||||
|
||||
var/showname = "."
|
||||
if(user)
|
||||
showname = " by [user]."
|
||||
showname = " by [user]!"
|
||||
if(!(user in viewers(M, null)))
|
||||
showname = "."
|
||||
|
||||
for(var/mob/O in viewers(messagesource, null))
|
||||
if(attack_verb.len)
|
||||
O.show_message("\red <B>[M] has been [pick(attack_verb)] with [src][showname] </B>", 1)
|
||||
else
|
||||
O.show_message("\red <B>[M] has been attacked with [src][showname] </B>", 1)
|
||||
if(attack_verb && attack_verb.len)
|
||||
M.visible_message("<span class='danger'>[M] has been [pick(attack_verb)] with [src][showname]</span>",
|
||||
"<span class='userdanger'>[M] has been [pick(attack_verb)] with [src][showname]!</span>")
|
||||
else if(force == 0)
|
||||
M.visible_message("<span class='danger'>[M] has been [pick("tapped","patted")] with [src][showname]</span>",
|
||||
"<span class='userdanger'>[M] has been [pick("tapped","patted")] with [src][showname]</span>")
|
||||
else
|
||||
M.visible_message("<span class='danger'>[M] has been attacked with [src][showname]</span>",
|
||||
"<span class='userdanger'>[M] has been attacked with [src][showname]</span>")
|
||||
|
||||
if(!showname && user)
|
||||
if(user.client)
|
||||
@@ -146,7 +160,7 @@
|
||||
else
|
||||
|
||||
M.take_organ_damage(power)
|
||||
if (prob(33)) // Added blood for whacking non-humans too
|
||||
if (prob(33) && src.force) // Added blood for whacking non-humans too
|
||||
var/turf/location = M.loc
|
||||
if (istype(location, /turf/simulated))
|
||||
location.add_blood_floor(M)
|
||||
@@ -156,4 +170,4 @@
|
||||
M << "Aargh it burns!"
|
||||
M.updatehealth()
|
||||
add_fingerprint(user)
|
||||
return 1
|
||||
return 1
|
||||
@@ -29,9 +29,6 @@
|
||||
var/allow_admin_ooccolor = 0 // Allows admins with relevant permissions to have their own ooc colour
|
||||
var/allow_vote_restart = 0 // allow votes to restart
|
||||
var/allow_vote_mode = 0 // allow votes to change mode
|
||||
var/allow_admin_jump = 1 // allows admin jumping
|
||||
var/allow_admin_spawning = 1 // allows admin item spawning
|
||||
var/allow_admin_rev = 1 // allows admin revives
|
||||
var/vote_delay = 6000 // minimum time between voting sessions (deciseconds, 10 minute default)
|
||||
var/vote_period = 600 // length of voting period (deciseconds, default 1 minute)
|
||||
var/vote_no_default = 0 // vote does not default to nochange/norestart (tbi)
|
||||
@@ -213,12 +210,6 @@
|
||||
config.allow_vote_restart = 1
|
||||
if("allow_vote_mode")
|
||||
config.allow_vote_mode = 1
|
||||
if("allow_admin_jump")
|
||||
config.allow_admin_jump = 1
|
||||
if("allow_admin_rev")
|
||||
config.allow_admin_rev = 1
|
||||
if("allow_admin_spawning")
|
||||
config.allow_admin_spawning = 1
|
||||
if("no_dead_vote")
|
||||
config.vote_no_dead = 1
|
||||
if("default_no_vote")
|
||||
|
||||
@@ -1,81 +1,81 @@
|
||||
//TODO: rewrite and standardise all controller datums to the datum/controller type
|
||||
//TODO: allow all controllers to be deleted for clean restarts (see WIP master controller stuff) - MC done - lighting done
|
||||
|
||||
/client/proc/restart_controller(controller in list("Master","Failsafe","Lighting","Supply Shuttle"))
|
||||
set category = "Debug"
|
||||
set name = "Restart Controller"
|
||||
set desc = "Restart one of the various periodic loop controllers for the game (be careful!)"
|
||||
|
||||
if(!holder) return
|
||||
usr = null
|
||||
src = null
|
||||
switch(controller)
|
||||
if("Master")
|
||||
new /datum/controller/game_controller()
|
||||
master_controller.process()
|
||||
feedback_add_details("admin_verb","RMC")
|
||||
if("Failsafe")
|
||||
new /datum/controller/failsafe()
|
||||
feedback_add_details("admin_verb","RFailsafe")
|
||||
if("Lighting")
|
||||
new /datum/controller/lighting()
|
||||
lighting_controller.process()
|
||||
feedback_add_details("admin_verb","RLighting")
|
||||
if("Supply Shuttle")
|
||||
supply_shuttle.process()
|
||||
feedback_add_details("admin_verb","RSupply")
|
||||
message_admins("Admin [key_name_admin(usr)] has restarted the [controller] controller.")
|
||||
return
|
||||
|
||||
|
||||
/client/proc/debug_controller(controller in list("Master","Failsafe","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI", "Cameras", "Events"))
|
||||
set category = "Debug"
|
||||
set name = "Debug Controller"
|
||||
set desc = "Debug the various periodic loop controllers for the game (be careful!)"
|
||||
|
||||
if(!holder) return
|
||||
switch(controller)
|
||||
if("Master")
|
||||
debug_variables(master_controller)
|
||||
feedback_add_details("admin_verb","DMC")
|
||||
if("Failsafe")
|
||||
debug_variables(Failsafe)
|
||||
feedback_add_details("admin_verb","DFailsafe")
|
||||
if("Ticker")
|
||||
debug_variables(ticker)
|
||||
feedback_add_details("admin_verb","DTicker")
|
||||
if("Lighting")
|
||||
debug_variables(lighting_controller)
|
||||
feedback_add_details("admin_verb","DLighting")
|
||||
if("Air")
|
||||
debug_variables(air_master)
|
||||
feedback_add_details("admin_verb","DAir")
|
||||
if("Jobs")
|
||||
debug_variables(job_master)
|
||||
feedback_add_details("admin_verb","DJobs")
|
||||
if("Sun")
|
||||
debug_variables(sun)
|
||||
feedback_add_details("admin_verb","DSun")
|
||||
if("Radio")
|
||||
debug_variables(radio_controller)
|
||||
feedback_add_details("admin_verb","DRadio")
|
||||
if("Supply Shuttle")
|
||||
debug_variables(supply_shuttle)
|
||||
feedback_add_details("admin_verb","DSupply")
|
||||
if("Emergency Shuttle")
|
||||
debug_variables(emergency_shuttle)
|
||||
feedback_add_details("admin_verb","DEmergency")
|
||||
if("Configuration")
|
||||
debug_variables(config)
|
||||
feedback_add_details("admin_verb","DConf")
|
||||
if("pAI")
|
||||
debug_variables(paiController)
|
||||
feedback_add_details("admin_verb","DpAI")
|
||||
if("Cameras")
|
||||
debug_variables(cameranet)
|
||||
feedback_add_details("admin_verb","DCameras")
|
||||
if("Events")
|
||||
debug_variables(events)
|
||||
feedback_add_details("admin_verb","DEvents")
|
||||
message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.")
|
||||
return
|
||||
//TODO: rewrite and standardise all controller datums to the datum/controller type
|
||||
//TODO: allow all controllers to be deleted for clean restarts (see WIP master controller stuff) - MC done - lighting done
|
||||
|
||||
/client/proc/restart_controller(controller in list("Master","Failsafe","Lighting","Supply Shuttle"))
|
||||
set category = "Debug"
|
||||
set name = "Restart Controller"
|
||||
set desc = "Restart one of the various periodic loop controllers for the game (be careful!)"
|
||||
|
||||
if(!holder) return
|
||||
usr = null
|
||||
src = null
|
||||
switch(controller)
|
||||
if("Master")
|
||||
new /datum/controller/game_controller()
|
||||
master_controller.process()
|
||||
feedback_add_details("admin_verb","RMC")
|
||||
if("Failsafe")
|
||||
new /datum/controller/failsafe()
|
||||
feedback_add_details("admin_verb","RFailsafe")
|
||||
if("Lighting")
|
||||
new /datum/controller/lighting()
|
||||
lighting_controller.process()
|
||||
feedback_add_details("admin_verb","RLighting")
|
||||
if("Supply Shuttle")
|
||||
supply_shuttle.process()
|
||||
feedback_add_details("admin_verb","RSupply")
|
||||
message_admins("Admin [key_name_admin(usr)] has restarted the [controller] controller.")
|
||||
return
|
||||
|
||||
|
||||
/client/proc/debug_controller(controller in list("Master","Failsafe","Ticker","Lighting","Air","Jobs","Sun","Radio","Supply Shuttle","Emergency Shuttle","Configuration","pAI", "Cameras", "Events"))
|
||||
set category = "Debug"
|
||||
set name = "Debug Controller"
|
||||
set desc = "Debug the various periodic loop controllers for the game (be careful!)"
|
||||
|
||||
if(!holder) return
|
||||
switch(controller)
|
||||
if("Master")
|
||||
debug_variables(master_controller)
|
||||
feedback_add_details("admin_verb","DMC")
|
||||
if("Failsafe")
|
||||
debug_variables(Failsafe)
|
||||
feedback_add_details("admin_verb","DFailsafe")
|
||||
if("Ticker")
|
||||
debug_variables(ticker)
|
||||
feedback_add_details("admin_verb","DTicker")
|
||||
if("Lighting")
|
||||
debug_variables(lighting_controller)
|
||||
feedback_add_details("admin_verb","DLighting")
|
||||
if("Air")
|
||||
debug_variables(air_master)
|
||||
feedback_add_details("admin_verb","DAir")
|
||||
if("Jobs")
|
||||
debug_variables(job_master)
|
||||
feedback_add_details("admin_verb","DJobs")
|
||||
if("Sun")
|
||||
debug_variables(sun)
|
||||
feedback_add_details("admin_verb","DSun")
|
||||
if("Radio")
|
||||
debug_variables(radio_controller)
|
||||
feedback_add_details("admin_verb","DRadio")
|
||||
if("Supply Shuttle")
|
||||
debug_variables(supply_shuttle)
|
||||
feedback_add_details("admin_verb","DSupply")
|
||||
if("Emergency Shuttle")
|
||||
debug_variables(emergency_shuttle)
|
||||
feedback_add_details("admin_verb","DEmergency")
|
||||
if("Configuration")
|
||||
debug_variables(config)
|
||||
feedback_add_details("admin_verb","DConf")
|
||||
if("pAI")
|
||||
debug_variables(paiController)
|
||||
feedback_add_details("admin_verb","DpAI")
|
||||
if("Cameras")
|
||||
debug_variables(cameranet)
|
||||
feedback_add_details("admin_verb","DCameras")
|
||||
if("Events")
|
||||
debug_variables(events)
|
||||
feedback_add_details("admin_verb","DEvents")
|
||||
message_admins("Admin [key_name_admin(usr)] is debugging the [controller] controller.")
|
||||
return
|
||||
|
||||
@@ -265,6 +265,7 @@ client
|
||||
if(isobj(D))
|
||||
body += "<option value='?_src_=vars;delall=\ref[D]'>Delete all of type</option>"
|
||||
if(isobj(D) || ismob(D) || isturf(D))
|
||||
body += "<option value='?_src_=vars;addreagent=\ref[D]'>Add reagent</option>"
|
||||
body += "<option value='?_src_=vars;explode=\ref[D]'>Trigger explosion</option>"
|
||||
body += "<option value='?_src_=vars;emp=\ref[D]'>Trigger EM pulse</option>"
|
||||
|
||||
@@ -634,6 +635,38 @@ client
|
||||
log_admin("[key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
|
||||
message_admins("\blue [key_name(usr)] deleted all objects of type or subtype of [O_type] ([i] objects deleted) ")
|
||||
|
||||
else if(href_list["addreagent"])
|
||||
if(!check_rights(0)) return
|
||||
|
||||
var/atom/A = locate(href_list["addreagent"])
|
||||
|
||||
if(!A.reagents)
|
||||
var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num
|
||||
if(amount)
|
||||
A.create_reagents(amount)
|
||||
|
||||
if(A.reagents)
|
||||
var/list/reagent_options = list()
|
||||
for(var/r_id in chemical_reagents_list)
|
||||
var/datum/reagent/R = chemical_reagents_list[r_id]
|
||||
reagent_options[R.name] = r_id
|
||||
|
||||
if(reagent_options.len)
|
||||
reagent_options = sortAssoc(reagent_options)
|
||||
reagent_options.Insert(1, "CANCEL")
|
||||
|
||||
var/chosen = input(usr, "Choose a reagent to add.", "Choose a reagent.") in reagent_options
|
||||
var/chosen_id = reagent_options[chosen]
|
||||
|
||||
if(chosen_id)
|
||||
var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num
|
||||
if(amount)
|
||||
A.reagents.add_reagent(chosen_id, amount)
|
||||
log_admin("[key_name(usr)] has added [amount] units of [chosen] to \the [A]")
|
||||
message_admins("\blue [key_name(usr)] has added [amount] units of [chosen] to \the [A]")
|
||||
|
||||
href_list["datumrefresh"] = href_list["addreagent"]
|
||||
|
||||
else if(href_list["explode"])
|
||||
if(!check_rights(R_FUN)) return
|
||||
|
||||
|
||||
@@ -847,7 +847,25 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
|
||||
cost = 8
|
||||
containertype = /obj/structure/largecrate
|
||||
containername = "water tank crate"
|
||||
|
||||
|
||||
/datum/supply_packs/misc/lasertag
|
||||
name = "LaserTag Crate"
|
||||
contains = list(/obj/item/weapon/gun/energy/laser/redtag,
|
||||
/obj/item/weapon/gun/energy/laser/redtag,
|
||||
/obj/item/weapon/gun/energy/laser/redtag,
|
||||
/obj/item/weapon/gun/energy/laser/bluetag,
|
||||
/obj/item/weapon/gun/energy/laser/bluetag,
|
||||
/obj/item/weapon/gun/energy/laser/bluetag,
|
||||
/obj/item/clothing/suit/redtag,
|
||||
/obj/item/clothing/suit/redtag,
|
||||
/obj/item/clothing/suit/redtag,
|
||||
/obj/item/clothing/suit/bluetag,
|
||||
/obj/item/clothing/suit/bluetag,
|
||||
/obj/item/clothing/suit/bluetag,
|
||||
/obj/item/clothing/head/helmet/redtaghelm,
|
||||
/obj/item/clothing/head/helmet/bluetaghelm)
|
||||
cost = 15
|
||||
containername = "LaserTag Crate"
|
||||
|
||||
///////////// Paper Work
|
||||
|
||||
|
||||
@@ -447,6 +447,14 @@ var/list/uplink_items = list()
|
||||
cost = 10
|
||||
excludefrom = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/badass/syndiecards
|
||||
name = "Syndicate Playing Cards"
|
||||
desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, making them lethal weapons both when wielded as a blade and when thrown. \
|
||||
You can also play card games with them."
|
||||
item = /obj/item/toy/cards/deck/syndicate
|
||||
cost = 1
|
||||
excludefrom = list(/datum/game_mode/nuclear)
|
||||
|
||||
/datum/uplink_item/badass/balloon
|
||||
name = "For showing that you are The Boss"
|
||||
desc = "A useless red balloon with the syndicate logo on it, which can blow the deepest of covers."
|
||||
|
||||
@@ -124,7 +124,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048
|
||||
switch(index)
|
||||
if(AIRLOCK_WIRE_IDSCAN)
|
||||
//Sending a pulse through this flashes the red light on the door (if the door has power).
|
||||
if((A.arePowerSystemsOn()) && (!(A.stat & NOPOWER)))
|
||||
if((A.arePowerSystemsOn()) && (!(A.stat & NOPOWER)) && A.density)
|
||||
A.do_animate("deny")
|
||||
if(AIRLOCK_WIRE_MAIN_POWER1 || AIRLOCK_WIRE_MAIN_POWER2)
|
||||
//Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter).
|
||||
|
||||
@@ -117,14 +117,17 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "bike_horn"
|
||||
item_state = "bike_horn"
|
||||
hitsound = 'sound/items/bikehorn.ogg'
|
||||
throwforce = 3
|
||||
hitsound = null //To prevent tap.ogg playing, as the item lacks of force
|
||||
w_class = 1.0
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
attack_verb = list("HONKED")
|
||||
var/spam_flag = 0
|
||||
|
||||
/obj/item/weapon/bikehorn/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) //plays instead of tap.ogg!
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/c_tube
|
||||
name = "cardboard tube"
|
||||
@@ -371,10 +374,7 @@
|
||||
m_amt = 15000
|
||||
origin_tech = "materials=2;combat=1"
|
||||
attack_verb = list("chopped", "torn", "cut")
|
||||
|
||||
/obj/item/weapon/hatchet/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return ..()
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/item/weapon/scythe
|
||||
icon_state = "scythe0"
|
||||
@@ -389,6 +389,7 @@
|
||||
slot_flags = SLOT_BACK
|
||||
origin_tech = "materials=2;combat=2"
|
||||
attack_verb = list("chopped", "sliced", "cut", "reaped")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/item/weapon/scythe/afterattack(atom/A, mob/user as mob, proximity)
|
||||
if(!proximity) return
|
||||
|
||||
@@ -38,6 +38,8 @@
|
||||
M.take_organ_damage(20)
|
||||
|
||||
|
||||
/atom/proc/CheckParts()
|
||||
return
|
||||
|
||||
/atom/proc/assume_air(datum/gas_mixture/giver)
|
||||
del(giver)
|
||||
@@ -280,6 +282,12 @@ var/list/blood_splatter_icons = list()
|
||||
overlays += blood_splatter_icon
|
||||
return 1 //we applied blood to the item
|
||||
|
||||
/obj/item/clothing/gloves/add_blood(mob/living/carbon/M)
|
||||
if(..() == 0) return 0
|
||||
transfer_blood = rand(2, 4)
|
||||
bloody_hands_mob = M
|
||||
return 1
|
||||
|
||||
/turf/simulated/add_blood(mob/living/carbon/M)
|
||||
if(..() == 0) return 0
|
||||
|
||||
@@ -291,6 +299,8 @@ var/list/blood_splatter_icons = list()
|
||||
/mob/living/carbon/human/add_blood(mob/living/carbon/M)
|
||||
if(..() == 0) return 0
|
||||
add_blood_list(M)
|
||||
bloody_hands = rand(2, 4)
|
||||
bloody_hands_mob = M
|
||||
update_inv_gloves() //handles bloody hands overlays and updating
|
||||
return 1 //we applied blood to the item
|
||||
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
domutcheck(owner)
|
||||
|
||||
check_dna_integrity(owner)
|
||||
return owner.dna
|
||||
return
|
||||
|
||||
/proc/check_dna_integrity(mob/living/carbon/character)
|
||||
if(!(istype(character, /mob/living/carbon/human) || istype(character, /mob/living/carbon/monkey))) //Evict xenos from carbon 2012
|
||||
@@ -347,8 +347,8 @@
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
|
||||
component_parts += new /obj/item/weapon/stock_parts/micro_laser(null)
|
||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
|
||||
component_parts += new /obj/item/weapon/cable_coil(null, 1)
|
||||
component_parts += new /obj/item/weapon/cable_coil(null, 1)
|
||||
component_parts += new /obj/item/stack/cable_coil(null, 1)
|
||||
component_parts += new /obj/item/stack/cable_coil(null, 1)
|
||||
RefreshParts()
|
||||
|
||||
|
||||
@@ -920,7 +920,7 @@
|
||||
if("pulsese")
|
||||
var/len = length(viable_occupant.dna.struc_enzymes)
|
||||
num = Wrap(num, 1, len+1)
|
||||
num = randomize_radiation_accuracy(num, radduration, len)
|
||||
num = randomize_radiation_accuracy(num, radduration + (connected.precision_coeff ** 2), len)
|
||||
|
||||
var/block = round((num-1)/DNA_BLOCK_SIZE)+1
|
||||
var/subblock = num - block*DNA_BLOCK_SIZE
|
||||
|
||||
@@ -9,7 +9,7 @@ var/list/blob_nodes = list()
|
||||
/datum/game_mode/blob
|
||||
name = "blob"
|
||||
config_tag = "blob"
|
||||
antag_flag = BE_ALIEN
|
||||
antag_flag = BE_BLOB
|
||||
|
||||
required_players = 30
|
||||
required_enemies = 1
|
||||
|
||||
@@ -63,9 +63,9 @@
|
||||
..()
|
||||
|
||||
|
||||
/obj/effect/blob/core/proc/create_overmind(var/client/new_overmind)
|
||||
/obj/effect/blob/core/proc/create_overmind(var/client/new_overmind, var/override_delay)
|
||||
|
||||
if(overmind_get_delay > world.time)
|
||||
if(overmind_get_delay > world.time && !override_delay)
|
||||
return
|
||||
|
||||
overmind_get_delay = world.time + 300 // 30 seconds
|
||||
@@ -77,7 +77,7 @@
|
||||
var/list/candidates = list()
|
||||
|
||||
if(!new_overmind)
|
||||
candidates = get_candidates(BE_ALIEN)
|
||||
candidates = get_candidates(BE_BLOB)
|
||||
if(candidates.len)
|
||||
C = pick(candidates)
|
||||
else
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
attacktext = "hits"
|
||||
attack_sound = 'sound/weapons/genhit1.ogg'
|
||||
var/obj/effect/blob/factory/factory = null
|
||||
var/is_zombie = 0
|
||||
faction = "blob"
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
@@ -75,6 +76,36 @@
|
||||
factory.spores += src
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/blobspore/Life()
|
||||
|
||||
if(!is_zombie)
|
||||
for(var/mob/living/carbon/human/H in ListTargets(0)) //Only for people in the same tile
|
||||
if(H.stat == DEAD)
|
||||
Zombify(H)
|
||||
break
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/hostile/blobspore/proc/Zombify(var/mob/living/carbon/human/H)
|
||||
if(H.wear_suit)
|
||||
var/obj/item/clothing/suit/armor/A = H.wear_suit
|
||||
if(A.armor && A.armor["melee"])
|
||||
maxHealth += A.armor["melee"] //That zombie's got armor, I want armor!
|
||||
maxHealth += 40
|
||||
health = maxHealth
|
||||
name = "blob zombie"
|
||||
desc = "A shambling corpse animated by the blob."
|
||||
melee_damage_lower = 10
|
||||
melee_damage_upper = 15
|
||||
icon = H.icon
|
||||
icon_state = "husk_s"
|
||||
H.hair_style = null
|
||||
H.update_hair()
|
||||
overlays = H.overlays
|
||||
overlays += image('icons/mob/blob.dmi', icon_state = "blob_head")
|
||||
H.loc = src
|
||||
is_zombie = 1
|
||||
loc.visible_message("<span class='warning'> The corpse of [H.name] suddenly rises!</span>")
|
||||
|
||||
/mob/living/simple_animal/hostile/blobspore/Die()
|
||||
// On death, create a small smoke of harmful gas (s-Acid)
|
||||
var/datum/effect/effect/system/chem_smoke_spread/S = new
|
||||
@@ -94,4 +125,7 @@
|
||||
/mob/living/simple_animal/hostile/blobspore/Del()
|
||||
if(factory)
|
||||
factory.spores -= src
|
||||
if(contents)
|
||||
for(var/mob/M in contents)
|
||||
M.loc = src.loc
|
||||
..()
|
||||
|
||||
@@ -277,9 +277,14 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
|
||||
U << "<span class='warning'>We could gain no benefit from absorbing a lesser creature.</span>"
|
||||
return 0
|
||||
|
||||
if(T.dna in absorbed_dna)
|
||||
U << "<span class='warning'>We already have that DNA in storage.</span>"
|
||||
return 0
|
||||
for(var/datum/dna/D in absorbed_dna)
|
||||
if(T.dna.uni_identity == D.uni_identity)
|
||||
if(T.dna.struc_enzymes == D.struc_enzymes)
|
||||
if(T.dna.real_name == D.real_name)
|
||||
if(T.dna.mutantrace == D.mutantrace)
|
||||
if(T.dna.blood_type == D.blood_type)
|
||||
U << "<span class='warning'>We already have that DNA in storage.</span>"
|
||||
return 0
|
||||
|
||||
if(!check_dna_integrity(T))
|
||||
U << "<span class='warning'>[T] is not compatible with our biology.</span>"
|
||||
@@ -292,7 +297,13 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
|
||||
/datum/changeling/proc/absorb_dna(mob/living/carbon/T)
|
||||
shuffle_dna()
|
||||
T.dna.real_name = T.real_name //Set this again, just to be sure that it's properly set.
|
||||
absorbed_dna |= T.dna //And add the target DNA to our absorbed list.
|
||||
var/datum/dna/new_dna = new T.dna.type
|
||||
new_dna.uni_identity = T.dna.uni_identity
|
||||
new_dna.struc_enzymes = T.dna.struc_enzymes
|
||||
new_dna.real_name = T.dna.real_name
|
||||
new_dna.mutantrace = T.dna.mutantrace
|
||||
new_dna.blood_type = T.dna.blood_type
|
||||
absorbed_dna |= new_dna //And add the target DNA to our absorbed list.
|
||||
absorbedcount++ //all that done, let's increment the objective counter.
|
||||
|
||||
/datum/changeling/proc/shuffle_dna()//boots out the stalest DNA.
|
||||
|
||||
52
code/game/gamemodes/changeling/changeling_mutations.dm
Normal file
52
code/game/gamemodes/changeling/changeling_mutations.dm
Normal file
@@ -0,0 +1,52 @@
|
||||
//This only contains the arm blade for now because I'm a lazy fuck. Yers truely, Miauw, resident lazy fuck.
|
||||
/obj/item/weapon/melee/arm_blade
|
||||
name = "arm blade"
|
||||
desc = "A grotesque blade made out of bone and flesh that cleaves through people as a hot knife through butter"
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "arm_blade"
|
||||
item_state = "arm_blade"
|
||||
flags = ABSTRACT
|
||||
w_class = 5.0
|
||||
force = 25
|
||||
throwforce = 0 //Just to be on the safe side
|
||||
throw_range = 0
|
||||
throw_speed = 0
|
||||
|
||||
/obj/item/weapon/melee/arm_blade/New()
|
||||
..()
|
||||
if(ismob(loc))
|
||||
loc.visible_message("<span class='warning'>A grotesque blade forms around [loc.name]\'s arm!</span>", "<span class='warning'>Our arm twists and mutates, transforming it into a deadly blade.</span>", "<span class='warning'>You hear organic matter ripping and tearing!</span>")
|
||||
|
||||
/obj/item/weapon/melee/arm_blade/dropped(mob/user)
|
||||
visible_message("<span class='warning'>With a sickening crunch, [user] reforms his blade into an arm!</span>", "<span class='notice'>We assimilate our blade into our body</span>", "<span class='warning>You hear organic matter ripping and tearing!</span>")
|
||||
del src
|
||||
|
||||
/obj/item/weapon/melee/arm_blade/afterattack(atom/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(istype(target, /obj/structure/table))
|
||||
var/obj/structure/table/T = target
|
||||
T.table_destroy(1, user)
|
||||
|
||||
else if(istype(target, /obj/machinery/computer))
|
||||
var/obj/machinery/computer/C = target
|
||||
C.attack_alien(user) //muh copypasta
|
||||
|
||||
else if(istype(target, /obj/machinery/door/airlock))
|
||||
var/obj/machinery/door/airlock/A = target
|
||||
|
||||
if(!A.requiresID() || A.allowed(user)) //This is to prevent stupid shit like hitting a door with an arm blade, the door opening because you have acces and still getting a "the airlocks motors resist our efforts to force it" message.
|
||||
return
|
||||
|
||||
if(A.arePowerSystemsOn() && !(A.stat & NOPOWER))
|
||||
user << "<span class='notice'>The airlock's motors resist our efforts to force it.</span>"
|
||||
return
|
||||
|
||||
else if(A.locked)
|
||||
user << "<span class='notice'>The airlock's bolts prevent it from being forced.</span>"
|
||||
return
|
||||
|
||||
else
|
||||
//user.say("Heeeeeeeeeerrre's Johnny!")
|
||||
user.visible_message("<span class='warning'>[user] forces the door to open with \his [src]!</span>", "<span class='warning'>We force the door to open.</span>", "<span class='warning'>You hear a metal screeching sound.</span>")
|
||||
A.open(1)
|
||||
@@ -118,12 +118,17 @@
|
||||
changeling.absorb_dna(T)
|
||||
|
||||
if(src.nutrition < 400) src.nutrition = min((src.nutrition + T.nutrition), 400)
|
||||
if(T.mind && T.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points!
|
||||
changeling.chem_charges += min(T.mind.changeling.chem_charges, changeling.chem_storage)
|
||||
changeling.absorbedcount += T.mind.changeling.absorbedcount
|
||||
|
||||
T.mind.changeling.absorbed_dna.len = 1
|
||||
T.mind.changeling.absorbedcount = 0
|
||||
if(T.mind)//if the victim has got a mind
|
||||
|
||||
T.mind.show_memory(src, 0) //I can read your mind, kekeke. Output all their notes.
|
||||
|
||||
if(T.mind.changeling)//If the target was a changeling, suck out their extra juice and objective points!
|
||||
changeling.chem_charges += min(T.mind.changeling.chem_charges, changeling.chem_storage)
|
||||
changeling.absorbedcount += T.mind.changeling.absorbedcount
|
||||
|
||||
T.mind.changeling.absorbed_dna.len = 1
|
||||
T.mind.changeling.absorbedcount = 0
|
||||
else
|
||||
changeling.chem_charges += 10
|
||||
|
||||
@@ -212,7 +217,8 @@
|
||||
changeling.chem_charges -= 5
|
||||
remove_changeling_powers()
|
||||
src << "<span class='notice'>We transform our appearance.</span>"
|
||||
dna = chosen_dna
|
||||
src.dna = chosen_dna
|
||||
|
||||
|
||||
var/mob/living/carbon/human/O = humanize((TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPDAMAGE | TR_KEEPSRC),chosen_dna.real_name)
|
||||
|
||||
@@ -529,9 +535,34 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
if(src && src.mind && src.mind.changeling)
|
||||
src.mind.changeling.mimicing = ""
|
||||
|
||||
//////////
|
||||
//STINGS// //They get a pretty header because there's just so fucking many of them ;_;
|
||||
//////////
|
||||
|
||||
/mob/living/carbon/proc/changeling_arm_blade()
|
||||
set category = "Changeling"
|
||||
set name = "Arm Blade (20)"
|
||||
|
||||
if(istype(l_hand, /obj/item/weapon/melee/arm_blade)) //Not the nicest way to do it, but eh
|
||||
u_equip(l_hand)
|
||||
return
|
||||
|
||||
if(istype(r_hand, /obj/item/weapon/melee/arm_blade))
|
||||
u_equip(r_hand)
|
||||
return
|
||||
|
||||
var/datum/changeling/changeling = changeling_power(20)
|
||||
if(!changeling)
|
||||
return
|
||||
|
||||
u_equip(get_active_hand())
|
||||
|
||||
put_in_hands(new /obj/item/weapon/melee/arm_blade(src))
|
||||
changeling.geneticdamage += 6
|
||||
|
||||
changeling.chem_charges -= 20
|
||||
|
||||
|
||||
//////////
|
||||
//STINGS// //They get a pretty header because there's just so fucking many of them ;_;
|
||||
//////////
|
||||
|
||||
/mob/living/carbon/proc/set_sting(A, icon, dna=null) //setting the sting and ui icon for it
|
||||
src << "<span class='notice'>We prepare our sting, use alt+click on target to sting them.</span>"
|
||||
@@ -584,15 +615,13 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
/mob/living/carbon/proc/sting_effect_trasnform(mob/living/carbon/T)
|
||||
if(!sting_can_reach(T, 40))
|
||||
return 0
|
||||
add_logs(src, T, "stung", object="transformation sting", addition="new identity is [src.mind.changeling.chosen_dna.real_name]")
|
||||
add_logs(src, T, "stung", object="transformation sting", addition=" new identity is [src.mind.changeling.chosen_dna.real_name]")
|
||||
if((HUSK in T.mutations) || !check_dna_integrity(T))
|
||||
src << "<span class='warning'>Our sting appears ineffective against its DNA.</span>"
|
||||
return 0
|
||||
|
||||
T.dna = src.mind.changeling.chosen_dna
|
||||
T.real_name = src.mind.changeling.chosen_dna.real_name
|
||||
var/datum/dna/NewDNA = src.mind.changeling.chosen_dna
|
||||
hardset_dna(T, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.mutantrace, NewDNA.blood_type)
|
||||
updateappearance(T)
|
||||
domutcheck(T, null)
|
||||
feedback_add_details("changeling_powers","TS")
|
||||
return 1
|
||||
|
||||
@@ -680,4 +709,4 @@ var/list/datum/dna/hivemind_bank = list()
|
||||
T.reagents.add_reagent("ice", 30)
|
||||
|
||||
feedback_add_details("changeling_powers","CS")
|
||||
return 1
|
||||
return 1
|
||||
|
||||
@@ -161,6 +161,13 @@ var/list/powerinstances
|
||||
allowduringlesserform = 1
|
||||
verbpath = /mob/living/carbon/proc/changeling_mute_sting
|
||||
|
||||
/datum/power/changeling/arm_blade
|
||||
name = "Arm Blade"
|
||||
desc = "We reform one of our arms into a deadly blade."
|
||||
helptext = "Cannot be used while in lesser form."
|
||||
genomecost = 1
|
||||
allowduringlesserform = 0
|
||||
verbpath = /mob/living/carbon/proc/changeling_arm_blade
|
||||
|
||||
// Modularchangling, totally stolen from the new player panel. YAYY
|
||||
/datum/changeling/proc/EvolutionMenu()//The new one
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
w_class = 4
|
||||
force = 30
|
||||
throwforce = 10
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
|
||||
/obj/item/weapon/melee/cultblade/attack(mob/living/target as mob, mob/living/carbon/human/user as mob)
|
||||
if(iscultist(user))
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
return ..()
|
||||
else
|
||||
user.Paralyse(5)
|
||||
|
||||
@@ -226,12 +226,18 @@ var/list/sacrificed = list()
|
||||
seer()
|
||||
if(usr.loc==src.loc)
|
||||
usr.say("Rash'tla sektath mal[pick("'","`")]zua. Zasan therium vivira. Itonis al'ra matum!")
|
||||
if(usr.see_invisible!=0 && usr.see_invisible!=15)
|
||||
usr << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision."
|
||||
var/mob/living/carbon/human/user = usr
|
||||
if(user.see_invisible!=25 || (istype(user) && user.glasses)) //check for non humans
|
||||
user << "\red The world beyond flashes your eyes but disappears quickly, as if something is disrupting your vision."
|
||||
else
|
||||
usr << "\red The world beyond opens to your eyes."
|
||||
usr.see_invisible = SEE_INVISIBLE_OBSERVER
|
||||
usr.seer = 1
|
||||
user << "\red The world beyond opens to your eyes."
|
||||
var/see_temp = user.see_invisible
|
||||
user.see_invisible = SEE_INVISIBLE_OBSERVER
|
||||
user.seer = 1
|
||||
while(user.loc==src.loc)
|
||||
sleep(30)
|
||||
user.seer = 0
|
||||
user.see_invisible = see_temp
|
||||
return
|
||||
return fizzle()
|
||||
|
||||
|
||||
@@ -319,28 +319,29 @@ var/global/datum/controller/gameticker/ticker
|
||||
/datum/controller/gameticker/proc/declare_completion()
|
||||
|
||||
for (var/mob/living/silicon/ai/aiPlayer in mob_list)
|
||||
if (aiPlayer.stat != 2)
|
||||
world << "<b>[aiPlayer.name] (Played by: [aiPlayer.key])'s laws at the end of the game were:</b>"
|
||||
else
|
||||
world << "<b>[aiPlayer.name] (Played by: [aiPlayer.key])'s laws when it was deactivated were:</b>"
|
||||
aiPlayer.show_laws(1)
|
||||
if (aiPlayer.stat != 2 && aiPlayer.mind)
|
||||
world << "<b>[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws at the end of the game were:</b>"
|
||||
aiPlayer.show_laws(1)
|
||||
else if (aiPlayer.mind) //if the dead ai has a mind, use its key instead
|
||||
world << "<b>[aiPlayer.name] (Played by: [aiPlayer.mind.key])'s laws when it was deactivated were:</b>"
|
||||
aiPlayer.show_laws(1)
|
||||
|
||||
if (aiPlayer.connected_robots.len)
|
||||
var/robolist = "<b>[aiPlayer.real_name]'s loyal minions were:</b> "
|
||||
var/vsrobolist = "\red <b>[aiPlayer.real_name]'s disloyal minions were:</b> \black"
|
||||
for(var/mob/living/silicon/robot/robo in aiPlayer.connected_robots)
|
||||
if (is_special_character(robo))
|
||||
vsrobolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]"
|
||||
if (is_special_character(robo) && robo.mind)
|
||||
vsrobolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.mind.key]), ":" (Played by: [robo.mind.key]), "]"
|
||||
continue
|
||||
robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.key]), ":" (Played by: [robo.key]), "]"
|
||||
robolist += "[robo.name][robo.stat?" (Deactivated) (Played by: [robo.mind.key]), ":" (Played by: [robo.mind.key]), "]"
|
||||
world << "[robolist]"
|
||||
world << "[vsrobolist]"
|
||||
for (var/mob/living/silicon/robot/robo in mob_list)
|
||||
if (!robo.connected_ai)
|
||||
if (robo.stat != 2)
|
||||
world << "<b>[robo.name] (Played by: [robo.key]) survived as an AI-less borg! Its laws were:</b>"
|
||||
world << "<b>[robo.name] (Played by: [robo.mind.key]) survived as an AI-less borg! Its laws were:</b>"
|
||||
else
|
||||
world << "<b>[robo.name] (Played by: [robo.key]) was unable to survive the rigors of being a cyborg without an AI. Its laws were:</b>"
|
||||
world << "<b>[robo.name] (Played by: [robo.mind.key]) was unable to survive the rigors of being a cyborg without an AI. Its laws were:</b>"
|
||||
|
||||
if(robo) //How the hell do we lose robo between here and the world messages directly above this?
|
||||
robo.laws.show_laws(world)
|
||||
|
||||
@@ -123,12 +123,10 @@
|
||||
mode = 2
|
||||
switch(alert("Search for item signature or DNA fragment?" , "Signature Mode Select" , "" , "Item" , "DNA"))
|
||||
if("Item")
|
||||
var/datum/objective/steal/itemlist
|
||||
itemlist = itemlist // To supress a 'variable defined but not used' error.
|
||||
var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in itemlist.possible_items
|
||||
var/targetitem = input("Select item to search for.", "Item Mode Select","") as null|anything in possible_items
|
||||
if(!targetitem)
|
||||
return
|
||||
target=locate(itemlist.possible_items[targetitem])
|
||||
target=locate(possible_items[targetitem])
|
||||
if(!target)
|
||||
usr << "Failed to locate [targetitem]!"
|
||||
return
|
||||
|
||||
@@ -4,266 +4,244 @@ datum/objective
|
||||
var/datum/mind/target = null //If they are focused on a particular person.
|
||||
var/target_amount = 0 //If they are focused on a particular number. Steal objectives have their own counter.
|
||||
var/completed = 0 //currently only used for custom objectives.
|
||||
var/dangerrating = 0 //How hard the objective is, essentially. Used for dishing out objectives and checking overall victory.
|
||||
|
||||
New(var/text)
|
||||
if(text)
|
||||
explanation_text = text
|
||||
datum/objective/New(var/text)
|
||||
if(text)
|
||||
explanation_text = text
|
||||
|
||||
proc/check_completion()
|
||||
return completed
|
||||
datum/objective/proc/check_completion()
|
||||
return completed
|
||||
|
||||
proc/find_target()
|
||||
var/list/possible_targets = list()
|
||||
for(var/datum/mind/possible_target in ticker.minds)
|
||||
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != 2))
|
||||
possible_targets += possible_target
|
||||
if(possible_targets.len > 0)
|
||||
target = pick(possible_targets)
|
||||
update_explanation_text()
|
||||
datum/objective/proc/find_target()
|
||||
var/list/possible_targets = list()
|
||||
for(var/datum/mind/possible_target in ticker.minds)
|
||||
if(possible_target != owner && ishuman(possible_target.current) && (possible_target.current.stat != 2))
|
||||
possible_targets += possible_target
|
||||
if(possible_targets.len > 0)
|
||||
target = pick(possible_targets)
|
||||
update_explanation_text()
|
||||
return target
|
||||
|
||||
datum/objective/proc/find_target_by_role(role, role_type=0)//Option sets either to check assigned role or special role. Default to assigned.
|
||||
for(var/datum/mind/possible_target in ticker.minds)
|
||||
if((possible_target != owner) && ishuman(possible_target.current) && ((role_type ? possible_target.special_role : possible_target.assigned_role) == role) )
|
||||
target = possible_target
|
||||
break
|
||||
update_explanation_text()
|
||||
|
||||
proc/find_target_by_role(role, role_type=0)//Option sets either to check assigned role or special role. Default to assigned.
|
||||
for(var/datum/mind/possible_target in ticker.minds)
|
||||
if((possible_target != owner) && ishuman(possible_target.current) && ((role_type ? possible_target.special_role : possible_target.assigned_role) == role) )
|
||||
target = possible_target
|
||||
break
|
||||
update_explanation_text()
|
||||
datum/objective/proc/update_explanation_text()
|
||||
//Default does nothing, override where needed
|
||||
|
||||
proc/update_explanation_text()
|
||||
//Default does nothing, override where needed
|
||||
|
||||
|
||||
datum/objective/assassinate
|
||||
var/target_role_type=0
|
||||
dangerrating = 10
|
||||
|
||||
find_target()
|
||||
..()
|
||||
return target
|
||||
datum/objective/assassinate/find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
|
||||
find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
datum/objective/assassinate/check_completion()
|
||||
if(target && target.current)
|
||||
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
|
||||
datum/objective/assassinate/update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Assassinate [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
|
||||
check_completion()
|
||||
if(target && target.current)
|
||||
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current) || target.current.z > 6 || !target.current.ckey) //Borgs/brains/AIs count as dead for traitor objectives. --NeoFite
|
||||
return 1
|
||||
return 0
|
||||
return 1
|
||||
|
||||
update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Assassinate [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
datum/objective/mutiny
|
||||
var/target_role_type=0
|
||||
|
||||
find_target()
|
||||
..()
|
||||
return target
|
||||
datum/objective/mutiny/find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
|
||||
find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
datum/objective/mutiny/check_completion()
|
||||
if(target && target.current)
|
||||
if(target.current.stat == DEAD || !ishuman(target.current) || !target.current.ckey || !target.current.client)
|
||||
return 1
|
||||
var/turf/T = get_turf(target.current)
|
||||
if(T && (T.z != 1)) //If they leave the station they count as dead for this
|
||||
return 2
|
||||
return 0
|
||||
return 1
|
||||
|
||||
datum/objective/mutiny/update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Assassinate [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
|
||||
check_completion()
|
||||
if(target && target.current)
|
||||
if(target.current.stat == DEAD || !ishuman(target.current) || !target.current.ckey || !target.current.client)
|
||||
return 1
|
||||
var/turf/T = get_turf(target.current)
|
||||
if(T && (T.z != 1)) //If they leave the station they count as dead for this
|
||||
return 2
|
||||
return 0
|
||||
return 1
|
||||
|
||||
update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Assassinate [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
datum/objective/debrain//I want braaaainssss
|
||||
var/target_role_type=0
|
||||
dangerrating = 20
|
||||
|
||||
find_target()
|
||||
..()
|
||||
return target
|
||||
datum/objective/debrain/find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
|
||||
find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
|
||||
|
||||
check_completion()
|
||||
if(!target)//If it's a free objective.
|
||||
return 1
|
||||
if( !owner.current || owner.current.stat==DEAD )//If you're otherwise dead.
|
||||
return 0
|
||||
if( !target.current || !isbrain(target.current) )
|
||||
return 0
|
||||
var/atom/A = target.current
|
||||
while(A.loc) //check to see if the brainmob is on our person
|
||||
A = A.loc
|
||||
if(A == owner.current)
|
||||
return 1
|
||||
datum/objective/debrain/check_completion()
|
||||
if(!target)//If it's a free objective.
|
||||
return 1
|
||||
if( !owner.current || owner.current.stat==DEAD )//If you're otherwise dead.
|
||||
return 0
|
||||
if( !target.current || !isbrain(target.current) )
|
||||
return 0
|
||||
var/atom/A = target.current
|
||||
while(A.loc) //check to see if the brainmob is on our person
|
||||
A = A.loc
|
||||
if(A == owner.current)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
datum/objective/debrain/update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Steal the brain of [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
|
||||
update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Steal the brain of [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
datum/objective/protect//The opposite of killing a dude.
|
||||
var/target_role_type=0
|
||||
dangerrating = 10
|
||||
|
||||
find_target()
|
||||
..()
|
||||
return target
|
||||
datum/objective/protect/find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
|
||||
find_target_by_role(role, role_type=0)
|
||||
target_role_type = role_type
|
||||
..(role, role_type)
|
||||
return target
|
||||
datum/objective/protect/check_completion()
|
||||
if(!target) //If it's a free objective.
|
||||
return 1
|
||||
if(target.current)
|
||||
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current))
|
||||
return 0
|
||||
return 1
|
||||
return 0
|
||||
|
||||
datum/objective/protect/update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Protect [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
|
||||
check_completion()
|
||||
if(!target) //If it's a free objective.
|
||||
return 1
|
||||
if(target.current)
|
||||
if(target.current.stat == DEAD || issilicon(target.current) || isbrain(target.current))
|
||||
return 0
|
||||
return 1
|
||||
return 0
|
||||
|
||||
update_explanation_text()
|
||||
..()
|
||||
if(target && target.current)
|
||||
explanation_text = "Protect [target.current.real_name], the [!target_role_type ? target.assigned_role : target.special_role]."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
datum/objective/hijack
|
||||
explanation_text = "Hijack the emergency shuttle by escaping alone."
|
||||
dangerrating = 25
|
||||
|
||||
check_completion()
|
||||
if(!owner.current || owner.current.stat)
|
||||
return 0
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
if(issilicon(owner.current))
|
||||
return 0
|
||||
var/area/shuttle = locate(/area/shuttle/escape/centcom)
|
||||
datum/objective/hijack/check_completion()
|
||||
if(!owner.current || owner.current.stat)
|
||||
return 0
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
if(issilicon(owner.current))
|
||||
return 0
|
||||
var/area/shuttle = locate(/area/shuttle/escape/centcom)
|
||||
|
||||
if(!(get_turf(owner.current) in shuttle))
|
||||
return 0
|
||||
if(!(get_turf(owner.current) in shuttle))
|
||||
return 0
|
||||
|
||||
var/list/protected_mobs = list(/mob/living/silicon/ai, /mob/living/silicon/pai)
|
||||
for(var/mob/living/player in player_list)
|
||||
if(player.type in protected_mobs) continue
|
||||
if (player.mind && (player.mind != owner))
|
||||
if(player.stat != DEAD) //they're not dead!
|
||||
if(get_turf(player) in shuttle)
|
||||
return 0
|
||||
return 1
|
||||
var/list/protected_mobs = list(/mob/living/silicon/ai, /mob/living/silicon/pai)
|
||||
for(var/mob/living/player in player_list)
|
||||
if(player.type in protected_mobs) continue
|
||||
if (player.mind && (player.mind != owner))
|
||||
if(player.stat != DEAD) //they're not dead!
|
||||
if(get_turf(player) in shuttle)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
datum/objective/block
|
||||
explanation_text = "Do not allow any organic lifeforms to escape on the shuttle alive."
|
||||
dangerrating = 25
|
||||
|
||||
datum/objective/block/check_completion()
|
||||
if(!istype(owner.current, /mob/living/silicon))
|
||||
return 0
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
if(!owner.current)
|
||||
return 0
|
||||
var/area/shuttle = locate(/area/shuttle/escape/centcom)
|
||||
var/protected_mobs[] = list(/mob/living/silicon/ai, /mob/living/silicon/pai, /mob/living/silicon/robot)
|
||||
for(var/mob/living/player in player_list)
|
||||
if(player.type in protected_mobs) continue
|
||||
if (player.mind)
|
||||
if (player.stat != 2)
|
||||
if (get_turf(player) in shuttle)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
check_completion()
|
||||
if(!istype(owner.current, /mob/living/silicon))
|
||||
return 0
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
if(!owner.current)
|
||||
return 0
|
||||
var/area/shuttle = locate(/area/shuttle/escape/centcom)
|
||||
var/protected_mobs[] = list(/mob/living/silicon/ai, /mob/living/silicon/pai, /mob/living/silicon/robot)
|
||||
for(var/mob/living/player in player_list)
|
||||
if(player.type in protected_mobs) continue
|
||||
if (player.mind)
|
||||
if (player.stat != 2)
|
||||
if (get_turf(player) in shuttle)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
datum/objective/silence
|
||||
explanation_text = "Do not allow anyone to escape the station. Only allow the shuttle to be called when everyone is dead and your story is the only one left."
|
||||
|
||||
check_completion()
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
|
||||
for(var/mob/living/player in player_list)
|
||||
if(player == owner.current)
|
||||
continue
|
||||
if(player.mind)
|
||||
if(player.stat != DEAD)
|
||||
var/turf/T = get_turf(player)
|
||||
if(!T) continue
|
||||
switch(T.loc.type)
|
||||
if(/area/shuttle/escape/centcom, /area/shuttle/escape_pod1/centcom, /area/shuttle/escape_pod2/centcom, /area/shuttle/escape_pod3/centcom, /area/shuttle/escape_pod4/centcom)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
datum/objective/escape
|
||||
explanation_text = "Escape on the shuttle or an escape pod alive."
|
||||
dangerrating = 5
|
||||
|
||||
datum/objective/escape/check_completion()
|
||||
if(issilicon(owner.current))
|
||||
return 0
|
||||
if(isbrain(owner.current))
|
||||
return 0
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
if(!owner.current || owner.current.stat ==2)
|
||||
return 0
|
||||
var/turf/location = get_turf(owner.current.loc)
|
||||
if(!location)
|
||||
return 0
|
||||
|
||||
check_completion()
|
||||
if(issilicon(owner.current))
|
||||
return 0
|
||||
if(isbrain(owner.current))
|
||||
return 0
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
if(!owner.current || owner.current.stat ==2)
|
||||
return 0
|
||||
var/turf/location = get_turf(owner.current.loc)
|
||||
if(!location)
|
||||
return 0
|
||||
if(istype(location, /turf/simulated/shuttle/floor4)) // Fails traitors if they are in the shuttle brig -- Polymorph
|
||||
return 0
|
||||
|
||||
if(istype(location, /turf/simulated/shuttle/floor4)) // Fails traitors if they are in the shuttle brig -- Polymorph
|
||||
return 0
|
||||
|
||||
var/area/check_area = location.loc
|
||||
if(istype(check_area, /area/shuttle/escape/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod1/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod2/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod3/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod4/centcom))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
var/area/check_area = location.loc
|
||||
if(istype(check_area, /area/shuttle/escape/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod1/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod2/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod3/centcom))
|
||||
return 1
|
||||
if(istype(check_area, /area/shuttle/escape_pod4/centcom))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
datum/objective/survive
|
||||
explanation_text = "Stay alive until the end."
|
||||
dangerrating = 3
|
||||
|
||||
datum/objective/survive/check_completion()
|
||||
if(!owner.current || owner.current.stat == DEAD || isbrain(owner.current))
|
||||
return 0 //Brains no longer win survive objectives. --NEO
|
||||
if(!is_special_character(owner.current)) //This fails borg'd traitors
|
||||
return 0
|
||||
return 1
|
||||
|
||||
check_completion()
|
||||
if(!owner.current || owner.current.stat == DEAD || isbrain(owner.current))
|
||||
return 0 //Brains no longer win survive objectives. --NEO
|
||||
if(!is_special_character(owner.current)) //This fails borg'd traitors
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
datum/objective/nuclear
|
||||
@@ -271,268 +249,170 @@ datum/objective/nuclear
|
||||
|
||||
|
||||
|
||||
var/global/list/possible_items = list()
|
||||
datum/objective/steal
|
||||
var/obj/item/steal_target
|
||||
var/target_name
|
||||
var/datum/objective_item/targetinfo = null //Save the chosen item datum so we can access it later.
|
||||
var/obj/item/steal_target = null //Needed for custom objectives (they're just items, not datums).
|
||||
dangerrating = 5 //Overridden by the individual item's difficulty, but defaults to 5 for custom objectives.
|
||||
|
||||
var/global/possible_items[] = list(
|
||||
"the captain's antique laser gun" = /obj/item/weapon/gun/energy/laser/captain,
|
||||
"a hand teleporter" = /obj/item/weapon/hand_tele,
|
||||
"an RCD" = /obj/item/weapon/rcd,
|
||||
"a jetpack" = /obj/item/weapon/tank/jetpack,
|
||||
"a functional AI" = /obj/item/device/aicard,
|
||||
"a pair of magboots" = /obj/item/clothing/shoes/magboots,
|
||||
"the station blueprints" = /obj/item/blueprints,
|
||||
"28 moles of plasma (full tank)" = /obj/item/weapon/tank,
|
||||
"an unused sample of slime extract" = /obj/item/slime_extract,
|
||||
"a piece of corgi meat" = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi,
|
||||
"the medal of captaincy" = /obj/item/clothing/tie/medal/gold/captain,
|
||||
"the hypospray" = /obj/item/weapon/reagent_containers/hypospray,
|
||||
"the nuclear authentication disk" = /obj/item/weapon/disk/nuclear,
|
||||
"an ablative armor vest" = /obj/item/clothing/suit/armor/laserproof,
|
||||
"the reactive teleport armor" = /obj/item/clothing/suit/armor/reactive,
|
||||
/*
|
||||
Nobody takes these seriously anyways -- Ikki
|
||||
"a captain's jumpsuit" = /obj/item/clothing/under/rank/captain,
|
||||
"a research director's jumpsuit" = /obj/item/clothing/under/rank/research_director,
|
||||
"a chief engineer's jumpsuit" = /obj/item/clothing/under/rank/chief_engineer,
|
||||
"a chief medical officer's jumpsuit" = /obj/item/clothing/under/rank/chief_medical_officer,
|
||||
"a head of security's jumpsuit" = /obj/item/clothing/under/rank/head_of_security,
|
||||
"a head of personnel's jumpsuit" = /obj/item/clothing/under/rank/head_of_personnel,
|
||||
*/
|
||||
)
|
||||
datum/objective/steal/New()
|
||||
..()
|
||||
if(!possible_items.len)//Only need to fill the list when it's needed.
|
||||
init_subtypes(/datum/objective_item/steal,possible_items)
|
||||
|
||||
var/global/possible_items_special[] = list(
|
||||
"the captain's pinpointer" = /obj/item/weapon/pinpointer,
|
||||
"an advanced energy gun" = /obj/item/weapon/gun/energy/gun/nuclear,
|
||||
"a diamond drill" = /obj/item/weapon/pickaxe/diamonddrill,
|
||||
"a bag of holding" = /obj/item/weapon/storage/backpack/holding,
|
||||
"a hyper-capacity cell" = /obj/item/weapon/cell/hyper,
|
||||
"10 diamonds" = /obj/item/stack/sheet/mineral/diamond,
|
||||
"50 gold bars" = /obj/item/stack/sheet/mineral/gold,
|
||||
"25 refined uranium bars" = /obj/item/stack/sheet/mineral/uranium,
|
||||
"a laser pointer" = /obj/item/device/laser_pointer,
|
||||
)
|
||||
datum/objective/steal/find_target()
|
||||
return set_target(pick(possible_items))
|
||||
|
||||
datum/objective/steal/proc/set_target(var/datum/objective_item/item)
|
||||
targetinfo = item
|
||||
|
||||
steal_target = targetinfo.targetitem
|
||||
explanation_text = "Steal [targetinfo.name]."
|
||||
dangerrating = targetinfo.difficulty
|
||||
return steal_target
|
||||
|
||||
datum/objective/steal/proc/select_target() //For admins setting objectives manually.
|
||||
var/list/possible_items_all = possible_items+"custom"
|
||||
var/new_target = input("Select target:", "Objective target", steal_target) as null|anything in possible_items_all
|
||||
if (!new_target) return
|
||||
|
||||
if (new_target == "custom") //Can set custom items.
|
||||
var/obj/item/custom_target = input("Select type:","Type") as null|anything in typesof(/obj/item)
|
||||
if (!custom_target) return
|
||||
var/tmp_obj = new custom_target
|
||||
var/custom_name = tmp_obj:name
|
||||
del(tmp_obj)
|
||||
custom_name = copytext(sanitize(input("Enter target name:", "Objective target", custom_name) as text|null),1,MAX_MESSAGE_LEN)
|
||||
if (!custom_name) return
|
||||
steal_target = custom_target
|
||||
explanation_text = "Steal [custom_name]."
|
||||
|
||||
else
|
||||
set_target(new_target)
|
||||
return steal_target
|
||||
|
||||
datum/objective/steal/check_completion()
|
||||
if(!steal_target || !owner.current) return 0
|
||||
if(!isliving(owner.current)) return 0
|
||||
var/list/all_items = owner.current.GetAllContents() //this should get things in cheesewheels, books, etc.
|
||||
|
||||
for(var/obj/I in all_items) //Check for items
|
||||
if(istype(I, steal_target))
|
||||
if(targetinfo && targetinfo.check_special_completion(I))//Returns 1 by default. Items with special checks will return 1 if the conditions are fulfilled.
|
||||
return 1
|
||||
else //If there's no targetinfo, then that means it was a custom objective. At this point, we know you have the item, so return 1.
|
||||
return 1
|
||||
|
||||
if(targetinfo && I.type in targetinfo.altitems) //Ok, so you don't have the item. Do you have an alternative, at least?
|
||||
if(targetinfo.check_special_completion(I))//Yeah, we do! Don't return 0 if we don't though - then you could fail if you had 1 item that didn't pass and got checked first!
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
proc/set_target(item_name)
|
||||
target_name = item_name
|
||||
steal_target = possible_items[target_name]
|
||||
if (!steal_target )
|
||||
steal_target = possible_items_special[target_name]
|
||||
explanation_text = "Steal [target_name]."
|
||||
return steal_target
|
||||
|
||||
var/global/list/possible_items_special = list()
|
||||
datum/objective/steal/special //ninjas are so special they get their own subtype good for them
|
||||
|
||||
find_target()
|
||||
return set_target(pick(possible_items))
|
||||
datum/objective/steal/special/New()
|
||||
..()
|
||||
if(!possible_items_special.len)
|
||||
init_subtypes(/datum/objective_item/special,possible_items)
|
||||
init_subtypes(/datum/objective_item/stack,possible_items)
|
||||
|
||||
|
||||
proc/select_target()
|
||||
var/list/possible_items_all = possible_items+possible_items_special+"custom"
|
||||
var/new_target = input("Select target:", "Objective target", steal_target) as null|anything in possible_items_all
|
||||
if (!new_target) return
|
||||
if (new_target == "custom")
|
||||
var/obj/item/custom_target = input("Select type:","Type") as null|anything in typesof(/obj/item)
|
||||
if (!custom_target) return
|
||||
var/tmp_obj = new custom_target
|
||||
var/custom_name = tmp_obj:name
|
||||
del(tmp_obj)
|
||||
custom_name = copytext(sanitize(input("Enter target name:", "Objective target", custom_name) as text|null),1,MAX_MESSAGE_LEN)
|
||||
if (!custom_name) return
|
||||
target_name = custom_name
|
||||
steal_target = custom_target
|
||||
explanation_text = "Steal [target_name]."
|
||||
else
|
||||
set_target(new_target)
|
||||
return steal_target
|
||||
|
||||
check_completion()
|
||||
if(!steal_target || !owner.current) return 0
|
||||
if(!isliving(owner.current)) return 0
|
||||
var/list/all_items = owner.current.GetAllContents() //this should get things in cheesewheels, books, etc.
|
||||
switch(target_name)
|
||||
if("28 moles of plasma (full tank)","10 diamonds","50 gold bars","25 refined uranium bars")
|
||||
var/target_amount = text2num(target_name)//Non-numbers are ignored.
|
||||
var/found_amount = 0.0//Always starts as zero.
|
||||
|
||||
for(var/obj/item/I in all_items) //Check for plasma tanks
|
||||
if(istype(I, steal_target))
|
||||
found_amount += (target_name=="28 moles of plasma (full tank)" ? (I:air_contents:toxins) : (I:amount))
|
||||
return found_amount>=target_amount
|
||||
|
||||
if("a functional AI")
|
||||
for(var/obj/item/device/aicard/C in all_items) //Check for ai card
|
||||
for(var/mob/living/silicon/ai/M in C)
|
||||
if(istype(M, /mob/living/silicon/ai) && M.stat != 2) //See if any AI's are alive inside that card.
|
||||
return 1
|
||||
|
||||
if("the station blueprints")
|
||||
for(var/obj/item/I in all_items) //the actual blueprints are good too!
|
||||
if(istype(I, /obj/item/blueprints))
|
||||
return 1
|
||||
if(istype(I, /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/P = I
|
||||
if(P.blueprints) //if the blueprints are in frame
|
||||
return 1
|
||||
|
||||
if("an unused sample of slime extract")
|
||||
for(var/obj/item/slime_extract/E in all_items)
|
||||
if(E.Uses > 0)
|
||||
return 1
|
||||
|
||||
else
|
||||
for(var/obj/I in all_items) //Check for items
|
||||
if(istype(I, steal_target))
|
||||
return 1
|
||||
return 0
|
||||
datum/objective/steal/special/find_target()
|
||||
return set_target(pick(possible_items_special))
|
||||
|
||||
|
||||
|
||||
datum/objective/download
|
||||
proc/gen_amount_goal()
|
||||
target_amount = rand(10,20)
|
||||
explanation_text = "Download [target_amount] research level\s."
|
||||
return target_amount
|
||||
dangerrating = 10
|
||||
|
||||
datum/objective/download/proc/gen_amount_goal()
|
||||
target_amount = rand(10,20)
|
||||
explanation_text = "Download [target_amount] research level\s."
|
||||
return target_amount
|
||||
|
||||
check_completion()
|
||||
if(!ishuman(owner.current))
|
||||
return 0
|
||||
if(!owner.current || owner.current.stat == 2)
|
||||
return 0
|
||||
if(!(istype(owner.current:wear_suit, /obj/item/clothing/suit/space/space_ninja)&&owner.current:wear_suit:s_initialized))
|
||||
return 0
|
||||
var/current_amount
|
||||
var/obj/item/clothing/suit/space/space_ninja/S = owner.current:wear_suit
|
||||
if(!S.stored_research.len)
|
||||
return 0
|
||||
else
|
||||
for(var/datum/tech/current_data in S.stored_research)
|
||||
if(current_data.level>1) current_amount+=(current_data.level-1)
|
||||
if(current_amount<target_amount) return 0
|
||||
return 1
|
||||
datum/objective/download/check_completion()
|
||||
if(!ishuman(owner.current))
|
||||
return 0
|
||||
if(!owner.current || owner.current.stat == 2)
|
||||
return 0
|
||||
if(!(istype(owner.current:wear_suit, /obj/item/clothing/suit/space/space_ninja)&&owner.current:wear_suit:s_initialized))
|
||||
return 0
|
||||
var/current_amount
|
||||
var/obj/item/clothing/suit/space/space_ninja/S = owner.current:wear_suit
|
||||
if(!S.stored_research.len)
|
||||
return 0
|
||||
else
|
||||
for(var/datum/tech/current_data in S.stored_research)
|
||||
if(current_data.level>1) current_amount+=(current_data.level-1)
|
||||
if(current_amount<target_amount) return 0
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
datum/objective/capture
|
||||
proc/gen_amount_goal()
|
||||
dangerrating = 10
|
||||
|
||||
datum/objective/capture/proc/gen_amount_goal()
|
||||
target_amount = rand(5,10)
|
||||
explanation_text = "Accumulate [target_amount] capture point\s. It is better if they remain relatively unharmed."
|
||||
return target_amount
|
||||
|
||||
|
||||
check_completion()//Basically runs through all the mobs in the area to determine how much they are worth.
|
||||
var/captured_amount = 0
|
||||
var/area/centcom/holding/A = locate()
|
||||
for(var/mob/living/carbon/human/M in A)//Humans.
|
||||
if(M.stat==2)//Dead folks are worth less.
|
||||
captured_amount+=0.5
|
||||
continue
|
||||
captured_amount+=1
|
||||
for(var/mob/living/carbon/monkey/M in A)//Monkeys are almost worthless, you failure.
|
||||
captured_amount+=0.1
|
||||
for(var/mob/living/carbon/alien/larva/M in A)//Larva are important for research.
|
||||
datum/objective/capture/check_completion()//Basically runs through all the mobs in the area to determine how much they are worth.
|
||||
var/captured_amount = 0
|
||||
var/area/centcom/holding/A = locate()
|
||||
for(var/mob/living/carbon/human/M in A)//Humans.
|
||||
if(M.stat==2)//Dead folks are worth less.
|
||||
captured_amount+=0.5
|
||||
continue
|
||||
captured_amount+=1
|
||||
for(var/mob/living/carbon/monkey/M in A)//Monkeys are almost worthless, you failure.
|
||||
captured_amount+=0.1
|
||||
for(var/mob/living/carbon/alien/larva/M in A)//Larva are important for research.
|
||||
if(M.stat==2)
|
||||
captured_amount+=0.5
|
||||
continue
|
||||
captured_amount+=1
|
||||
for(var/mob/living/carbon/alien/humanoid/M in A)//Aliens are worth twice as much as humans.
|
||||
if(istype(M, /mob/living/carbon/alien/humanoid/queen))//Queens are worth three times as much as humans.
|
||||
if(M.stat==2)
|
||||
captured_amount+=0.5
|
||||
continue
|
||||
captured_amount+=1.5
|
||||
else
|
||||
captured_amount+=3
|
||||
continue
|
||||
if(M.stat==2)
|
||||
captured_amount+=1
|
||||
for(var/mob/living/carbon/alien/humanoid/M in A)//Aliens are worth twice as much as humans.
|
||||
if(istype(M, /mob/living/carbon/alien/humanoid/queen))//Queens are worth three times as much as humans.
|
||||
if(M.stat==2)
|
||||
captured_amount+=1.5
|
||||
else
|
||||
captured_amount+=3
|
||||
continue
|
||||
if(M.stat==2)
|
||||
captured_amount+=1
|
||||
continue
|
||||
captured_amount+=2
|
||||
if(captured_amount<target_amount)
|
||||
return 0
|
||||
return 1
|
||||
continue
|
||||
captured_amount+=2
|
||||
if(captured_amount<target_amount)
|
||||
return 0
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
datum/objective/absorb
|
||||
proc/gen_amount_goal(var/lowbound = 4, var/highbound = 6)
|
||||
target_amount = rand (lowbound,highbound)
|
||||
if (ticker)
|
||||
var/n_p = 1 //autowin
|
||||
if (ticker.current_state == GAME_STATE_SETTING_UP)
|
||||
for(var/mob/new_player/P in player_list)
|
||||
if(P.client && P.ready && P.mind!=owner)
|
||||
n_p ++
|
||||
else if (ticker.current_state == GAME_STATE_PLAYING)
|
||||
for(var/mob/living/carbon/human/P in player_list)
|
||||
if(P.client && !(P.mind in ticker.mode.changelings) && P.mind!=owner)
|
||||
n_p ++
|
||||
target_amount = min(target_amount, n_p)
|
||||
dangerrating = 10
|
||||
|
||||
explanation_text = "Extract [target_amount] compatible genome\s."
|
||||
return target_amount
|
||||
datum/objective/absorb/proc/gen_amount_goal(var/lowbound = 4, var/highbound = 6)
|
||||
target_amount = rand (lowbound,highbound)
|
||||
if (ticker)
|
||||
var/n_p = 1 //autowin
|
||||
if (ticker.current_state == GAME_STATE_SETTING_UP)
|
||||
for(var/mob/new_player/P in player_list)
|
||||
if(P.client && P.ready && P.mind!=owner)
|
||||
n_p ++
|
||||
else if (ticker.current_state == GAME_STATE_PLAYING)
|
||||
for(var/mob/living/carbon/human/P in player_list)
|
||||
if(P.client && !(P.mind in ticker.mode.changelings) && P.mind!=owner)
|
||||
n_p ++
|
||||
target_amount = min(target_amount, n_p)
|
||||
|
||||
check_completion()
|
||||
if(owner && owner.changeling && owner.changeling.absorbed_dna && (owner.changeling.absorbedcount >= target_amount))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
explanation_text = "Extract [target_amount] compatible genome\s."
|
||||
return target_amount
|
||||
|
||||
|
||||
|
||||
/* Isn't suited for global objectives
|
||||
/*---------CULTIST----------*/
|
||||
|
||||
eldergod
|
||||
explanation_text = "Summon Nar-Sie via the use of an appropriate rune. It will only work if nine cultists stand on and around it."
|
||||
|
||||
check_completion()
|
||||
if(eldergod) //global var, defined in rune4.dm
|
||||
return 1
|
||||
return 0
|
||||
|
||||
survivecult
|
||||
var/num_cult
|
||||
|
||||
explanation_text = "Our knowledge must live on. Make sure at least 5 acolytes escape on the shuttle to spread their work on an another station."
|
||||
|
||||
check_completion()
|
||||
if(emergency_shuttle.location<2)
|
||||
return 0
|
||||
|
||||
var/cultists_escaped = 0
|
||||
|
||||
var/area/shuttle/escape/centcom/C = /area/shuttle/escape/centcom
|
||||
for(var/turf/T in get_area_turfs(C.type))
|
||||
for(var/mob/living/carbon/H in T)
|
||||
if(iscultist(H))
|
||||
cultists_escaped++
|
||||
|
||||
if(cultists_escaped>=5)
|
||||
return 1
|
||||
|
||||
return 0
|
||||
|
||||
sacrifice //stolen from traitor target objective
|
||||
|
||||
proc/find_target() //I don't know how to make it work with the rune otherwise, so I'll do it via a global var, sacrifice_target, defined in rune15.dm
|
||||
var/list/possible_targets = call(/datum/game_mode/cult/proc/get_unconvertables)()
|
||||
|
||||
if(possible_targets.len > 0)
|
||||
sacrifice_target = pick(possible_targets)
|
||||
|
||||
if(sacrifice_target && sacrifice_target.current)
|
||||
explanation_text = "Sacrifice [sacrifice_target.current.real_name], the [sacrifice_target.assigned_role]. You will need the sacrifice rune (Hell join blood) and three acolytes to do so."
|
||||
else
|
||||
explanation_text = "Free Objective"
|
||||
|
||||
return sacrifice_target
|
||||
|
||||
check_completion() //again, calling on a global list defined in rune15.dm
|
||||
if(sacrifice_target.current in sacrificed)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
/*-------ENDOF CULTIST------*/
|
||||
*/
|
||||
datum/objective/absorb/check_completion()
|
||||
if(owner && owner.changeling && owner.changeling.absorbed_dna && (owner.changeling.absorbedcount >= target_amount))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
190
code/game/gamemodes/objective_items.dm
Normal file
190
code/game/gamemodes/objective_items.dm
Normal file
@@ -0,0 +1,190 @@
|
||||
//Contains the target item datums for Steal objectives.
|
||||
|
||||
datum/objective_item
|
||||
var/name = "A silly bike horn! Honk!"
|
||||
var/targetitem = /obj/item/weapon/bikehorn //typepath of the objective item
|
||||
var/difficulty = 9001 //vaguely how hard it is to do this objective
|
||||
var/list/excludefromjob = list() //If you don't want a job to get a certain objective (no captain stealing his own medal, etcetc)
|
||||
var/list/altitems = list() //Items which can serve as an alternative to the objective (darn you blueprints)
|
||||
|
||||
datum/proc/check_special_completion() //for objectives with special checks (is that slime extract unused? does that intellicard have an ai in it? etcetc)
|
||||
return 1
|
||||
|
||||
|
||||
datum/objective_item/steal/caplaser
|
||||
name = "the captain's antique laser gun"
|
||||
targetitem = /obj/item/weapon/gun/energy/laser/captain
|
||||
difficulty = 5
|
||||
excludefromjob = list("Captain")
|
||||
|
||||
datum/objective_item/steal/handtele
|
||||
name = "a hand teleporter"
|
||||
targetitem = /obj/item/weapon/hand_tele
|
||||
difficulty = 5
|
||||
excludefromjob = list("Captain")
|
||||
|
||||
datum/objective_item/steal/rcd
|
||||
name = "a rapid-construction-device"
|
||||
targetitem = /obj/item/weapon/rcd
|
||||
difficulty = 3
|
||||
|
||||
datum/objective_item/steal/jetpack
|
||||
name = "a jetpack"
|
||||
targetitem = /obj/item/weapon/tank/jetpack
|
||||
difficulty = 3
|
||||
|
||||
datum/objective_item/steal/magboots
|
||||
name = "a pair of magboots"
|
||||
targetitem = /obj/item/clothing/shoes/magboots
|
||||
difficulty = 5
|
||||
excludefromjob = list("Chief Engineer")
|
||||
|
||||
datum/objective_item/steal/corgimeat
|
||||
name = "a piece of corgi meat"
|
||||
targetitem = /obj/item/weapon/reagent_containers/food/snacks/meat/corgi
|
||||
difficulty = 5
|
||||
excludefromjob = list("Head of Personnel") //>hurting your little buddy ever
|
||||
|
||||
datum/objective_item/steal/capmedal
|
||||
name = "the medal of captaincy"
|
||||
targetitem = /obj/item/clothing/tie/medal/gold/captain
|
||||
difficulty = 5
|
||||
excludefromjob = list("Captain")
|
||||
|
||||
datum/objective_item/steal/hypo
|
||||
name = "the hypospray"
|
||||
targetitem = /obj/item/weapon/reagent_containers/hypospray
|
||||
difficulty = 5
|
||||
excludefromjob = list("Chief Medical Officer")
|
||||
|
||||
datum/objective_item/steal/nukedisc
|
||||
name = "the nuclear authentication disk"
|
||||
targetitem = /obj/item/weapon/disk/nuclear
|
||||
difficulty = 5
|
||||
excludefromjob = list("Captain")
|
||||
|
||||
datum/objective_item/steal/ablative
|
||||
name = "an ablative armor vest"
|
||||
targetitem = /obj/item/clothing/suit/armor/laserproof
|
||||
difficulty = 3
|
||||
excludefromjob = list("Head of Security", "Warden")
|
||||
|
||||
datum/objective_item/steal/reactive
|
||||
name = "the reactive teleport armor"
|
||||
targetitem = /obj/item/clothing/suit/armor/reactive
|
||||
difficulty = 5
|
||||
excludefromjob = list("Research Director")
|
||||
|
||||
|
||||
//Items with special checks!
|
||||
datum/objective_item/steal/plasma
|
||||
name = "28 moles of plasma (full tank)"
|
||||
targetitem = /obj/item/weapon/tank
|
||||
difficulty = 3
|
||||
excludefromjob = list("Chief Engineer","Research Director","Station Engineer","Scientist","Atmospheric Technician")
|
||||
|
||||
datum/objective_item/plasma/check_special_completion(var/obj/item/weapon/tank/T)
|
||||
var/target_amount = text2num(name)
|
||||
var/found_amount = 0
|
||||
found_amount += T.air_contents.toxins
|
||||
return found_amount>=target_amount
|
||||
|
||||
|
||||
datum/objective_item/steal/functionalai
|
||||
name = "a functional AI"
|
||||
targetitem = /obj/item/device/aicard
|
||||
difficulty = 20 //beyond the impossible
|
||||
|
||||
datum/objective_item/functionalai/check_special_completion(var/obj/item/device/aicard/C)
|
||||
for(var/mob/living/silicon/ai/A in C)
|
||||
if(istype(A, /mob/living/silicon/ai) && A.stat != 2) //See if any AI's are alive inside that card.
|
||||
return 1
|
||||
return 0
|
||||
|
||||
datum/objective_item/steal/blueprints
|
||||
name = "the station blueprints"
|
||||
targetitem = /obj/item/blueprints
|
||||
difficulty = 10
|
||||
excludefromjob = list("Chief Engineer")
|
||||
altitems = list(/obj/item/weapon/photo)
|
||||
|
||||
datum/objective_item/blueprints/check_special_completion(var/obj/item/I)
|
||||
if(istype(I, /obj/item/blueprints))
|
||||
return 1
|
||||
if(istype(I, /obj/item/weapon/photo))
|
||||
var/obj/item/weapon/photo/P = I
|
||||
if(P.blueprints) //if the blueprints are in frame
|
||||
return 1
|
||||
return 0
|
||||
|
||||
datum/objective_item/steal/slime
|
||||
name = "an unused sample of slime extract"
|
||||
targetitem = /obj/item/slime_extract
|
||||
difficulty = 3
|
||||
excludefromjob = list("Research Director","Scientist")
|
||||
|
||||
datum/objective_item/slime/check_special_completion(var/obj/item/slime_extract/E)
|
||||
if(E.Uses > 0)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
//Old ninja objectives.
|
||||
datum/objective_item/special/pinpointer
|
||||
name = "the captain's pinpointer"
|
||||
targetitem = /obj/item/weapon/pinpointer
|
||||
difficulty = 10
|
||||
|
||||
datum/objective_item/special/aegun
|
||||
name = "an advanced energy gun"
|
||||
targetitem = /obj/item/weapon/gun/energy/gun/nuclear
|
||||
difficulty = 10
|
||||
|
||||
datum/objective_item/special/ddrill
|
||||
name = "a diamond drill"
|
||||
targetitem = /obj/item/weapon/pickaxe/diamonddrill
|
||||
difficulty = 10
|
||||
|
||||
datum/objective_item/special/boh
|
||||
name = "a bag of holding"
|
||||
targetitem = /obj/item/weapon/storage/backpack/holding
|
||||
difficulty = 10
|
||||
|
||||
datum/objective_item/special/hypercell
|
||||
name = "a hyper-capacity cell"
|
||||
targetitem = /obj/item/weapon/cell/hyper
|
||||
difficulty = 5
|
||||
|
||||
datum/objective_item/special/laserpointer
|
||||
name = "a laser pointer"
|
||||
targetitem = /obj/item/device/laser_pointer
|
||||
difficulty = 5
|
||||
|
||||
//Stack objectives get their own subtype
|
||||
datum/objective_item/stack
|
||||
name = "5 cardboards"
|
||||
targetitem = /obj/item/stack/sheet/cardboard
|
||||
difficulty = 9001
|
||||
|
||||
datum/objective_item/stack/check_special_completion(var/obj/item/stack/S)
|
||||
var/target_amount = text2num(name)
|
||||
var/found_amount = 0
|
||||
|
||||
if(istype(S, targetitem))
|
||||
found_amount = S.amount
|
||||
return found_amount>=target_amount
|
||||
|
||||
datum/objective_item/stack/diamond
|
||||
name = "10 diamonds"
|
||||
targetitem = /obj/item/stack/sheet/mineral/diamond
|
||||
difficulty = 10
|
||||
|
||||
datum/objective_item/stack/gold
|
||||
name = "50 gold bars"
|
||||
targetitem = /obj/item/stack/sheet/mineral/gold
|
||||
difficulty = 15
|
||||
|
||||
datum/objective_item/stack/uranium
|
||||
name = "25 refined uranium bars"
|
||||
targetitem = /obj/item/stack/sheet/mineral/uranium
|
||||
difficulty = 10
|
||||
@@ -54,7 +54,7 @@ datum/hSB
|
||||
"Spawn 50 Plasteel" = "hsbplasteel",
|
||||
"Spawn 50 Reinforced Glass" = "hsbrglass",
|
||||
"Spawn 50 Glass" = "hsbglass",
|
||||
"Spawn Full Cable Coil" = "hsbspawn&path=[/obj/item/weapon/cable_coil]",
|
||||
"Spawn Full Cable Coil" = "hsbspawn&path=[/obj/item/stack/cable_coil]",
|
||||
"Spawn Hyper Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/cell/hyper]",
|
||||
"Spawn Inf. Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/cell/infinite]",
|
||||
"Spawn Rapid Construction Device" = "hsbrcd",
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
throwforce = 10
|
||||
w_class = 3
|
||||
var/charged = 1
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/effect/rend
|
||||
name = "tear in the fabric of reality"
|
||||
|
||||
@@ -292,7 +292,8 @@
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/under/suit_jacket/red(H), slot_w_uniform)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/pda/librarian(H), slot_belt)
|
||||
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/barcodescanner(H), slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/storage/bag/books(H), slot_l_hand)
|
||||
H.equip_to_slot_or_del(new /obj/item/weapon/barcodescanner(H), slot_r_store)
|
||||
H.equip_to_slot_or_del(new /obj/item/device/laser_pointer(H), slot_l_store)
|
||||
return 1
|
||||
|
||||
|
||||
@@ -57,6 +57,12 @@
|
||||
A.blob_act()
|
||||
del(src)
|
||||
|
||||
/obj/machinery/sleeper/attack_animal(var/mob/living/simple_animal/M)//Stop putting hostile mobs in things guise
|
||||
if(M.environment_smash)
|
||||
visible_message("<span class='danger'>[M.name] smashes [src] apart!</span>")
|
||||
del(src)
|
||||
return
|
||||
|
||||
/obj/machinery/sleeper/attackby(obj/item/I, mob/user)
|
||||
if(!state_open && !occupant)
|
||||
if(default_deconstruction_screwdriver(user, "sleeper-o", "sleeper", I))
|
||||
@@ -227,4 +233,4 @@
|
||||
if(state_open)
|
||||
icon_state = "sleeper-open"
|
||||
else
|
||||
icon_state = "sleeper"
|
||||
icon_state = "sleeper"
|
||||
|
||||
@@ -769,7 +769,7 @@ table tr:first-child th:first-child { border: none;}
|
||||
if(istype(W, /obj/item/weapon/wirecutters) && wires.wires_status == (2 ** wires.wire_count) - 1) //this checks for all wires to be cut, disregard the ammount of wires, binary fuckery with the wires_status
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "You cut the final wires."
|
||||
var/obj/item/weapon/cable_coil/cable = new /obj/item/weapon/cable_coil( src.loc )
|
||||
var/obj/item/stack/cable_coil/cable = new /obj/item/stack/cable_coil( src.loc )
|
||||
cable.amount = 5
|
||||
buildstage = 1
|
||||
update_icon()
|
||||
@@ -806,8 +806,8 @@ table tr:first-child th:first-child { border: none;}
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/cable = W
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/cable = W
|
||||
if(cable.amount < 5)
|
||||
user << "You need more cable!"
|
||||
return
|
||||
@@ -992,14 +992,14 @@ FIRE ALARM
|
||||
else if (istype(W, /obj/item/weapon/wirecutters))
|
||||
buildstage = 1
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil()
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil()
|
||||
coil.amount = 5
|
||||
coil.loc = user.loc
|
||||
user << "<span class='notice'>You cut the wires from \the [src]</span>"
|
||||
update_icon()
|
||||
if(1)
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/coil = W
|
||||
if(coil.amount < 5)
|
||||
user << "<span class='warning'>You need more cable for this!</span>"
|
||||
return
|
||||
|
||||
@@ -35,7 +35,7 @@ obj/machinery/air_sensor
|
||||
var/datum/gas_mixture/air_sample = return_air()
|
||||
|
||||
if(output&1)
|
||||
signal.data["pressure"] = num2text(round(air_sample.return_pressure(),0.1),)
|
||||
signal.data["pressure"] = num2text(round(air_sample.return_pressure(),0.1))
|
||||
if(output&2)
|
||||
signal.data["temperature"] = round(air_sample.temperature,0.1)
|
||||
|
||||
@@ -125,6 +125,8 @@ obj/machinery/computer/general_air_control
|
||||
if(data)
|
||||
if(data["pressure"])
|
||||
sensor_part += " <B>Pressure:</B> [data["pressure"]] kPa<BR>"
|
||||
else
|
||||
sensor_part += " <B>Pressure:</B> No pressure detected<BR>"
|
||||
if(data["temperature"])
|
||||
sensor_part += " <B>Temperature:</B> [data["temperature"]] K<BR>"
|
||||
if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"])
|
||||
|
||||
@@ -275,7 +275,7 @@ var/global/list/autolathe_recipes_hidden = list( \
|
||||
spawn(16/coeff)
|
||||
use_power(power)
|
||||
spawn(16/coeff)
|
||||
if(template.type == /obj/item/stack)
|
||||
if(istype(template, /obj/item/stack))
|
||||
src.m_amount -= template.m_amt*multiplier
|
||||
src.g_amount -= template.g_amt*multiplier
|
||||
var/obj/new_item = new template.type(T)
|
||||
|
||||
@@ -195,7 +195,7 @@ Auto Patrol: []"},
|
||||
user << "<span class='notice'>Access denied.</span>"
|
||||
else
|
||||
..()
|
||||
if (!istype(W, /obj/item/weapon/screwdriver) && (!src.target))
|
||||
if (!istype(W, /obj/item/weapon/screwdriver) && !istype(W, /obj/item/weapon/weldingtool) && (!src.target)) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass.
|
||||
if(hasvar(W,"force") && W.force)//If force is defined and non-zero
|
||||
src.target = user
|
||||
if(lasercolor)//To make up for the fact that lasertag bots don't hunt
|
||||
@@ -930,14 +930,26 @@ Auto Patrol: []"},
|
||||
name = "shielded frame assembly"
|
||||
user << "<span class='notice'>You welded the vest to [src].</span>"
|
||||
if(4)
|
||||
if( istype(W, /obj/item/clothing/head/helmet) )
|
||||
user.drop_item()
|
||||
del(W)
|
||||
build_step++
|
||||
user << "<span class='notice'>You add the helmet to [src].</span>"
|
||||
name = "covered and shielded frame assembly"
|
||||
item_state = "[lasercolor]ed209_hat"
|
||||
icon_state = "[lasercolor]ed209_hat"
|
||||
switch(lasercolor)
|
||||
if("b")
|
||||
if( !istype(W, /obj/item/clothing/head/helmet/bluetaghelm) )
|
||||
return
|
||||
|
||||
if("r")
|
||||
if( !istype(W, /obj/item/clothing/head/helmet/redtaghelm) )
|
||||
return
|
||||
|
||||
if("")
|
||||
if( !istype(W, /obj/item/clothing/head/helmet) )
|
||||
return
|
||||
|
||||
user.drop_item()
|
||||
del(W)
|
||||
build_step++
|
||||
user << "<span class='notice'>You add the helmet to [src].</span>"
|
||||
name = "covered and shielded frame assembly"
|
||||
item_state = "[lasercolor]ed209_hat"
|
||||
icon_state = "[lasercolor]ed209_hat"
|
||||
|
||||
if(5)
|
||||
if( isprox(W) )
|
||||
@@ -950,8 +962,8 @@ Auto Patrol: []"},
|
||||
icon_state = "[lasercolor]ed209_prox"
|
||||
|
||||
if(6)
|
||||
if( istype(W, /obj/item/weapon/cable_coil) )
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
if( istype(W, /obj/item/stack/cable_coil) )
|
||||
var/obj/item/stack/cable_coil/coil = W
|
||||
var/turf/T = get_turf(user)
|
||||
user << "<span class='notice'>You start to wire [src]...</span>"
|
||||
sleep(40)
|
||||
|
||||
@@ -135,6 +135,9 @@ var/global/mulebot_count = 0
|
||||
)
|
||||
else
|
||||
user << "\blue [src] does not need a repair!"
|
||||
else if(istype(I, /obj/item/device/multitool) || istype(I, /obj/item/weapon/wirecutters))
|
||||
if(open)
|
||||
attack_hand(usr)
|
||||
else if(load && ismob(load)) // chance to knock off rider
|
||||
if(prob(1+I.force * 2))
|
||||
unload(0)
|
||||
@@ -893,7 +896,7 @@ var/global/mulebot_count = 0
|
||||
new /obj/item/device/assembly/prox_sensor(Tsec)
|
||||
new /obj/item/stack/rods(Tsec)
|
||||
new /obj/item/stack/rods(Tsec)
|
||||
new /obj/item/weapon/cable_coil/cut(Tsec)
|
||||
new /obj/item/stack/cable_coil/cut(Tsec)
|
||||
if (cell)
|
||||
cell.loc = Tsec
|
||||
cell.update_icon()
|
||||
|
||||
@@ -171,7 +171,7 @@ Auto Patrol: []"},
|
||||
user << "\red Access denied."
|
||||
else
|
||||
..()
|
||||
if(!istype(W, /obj/item/weapon/screwdriver) && (W.force) && (!src.target))
|
||||
if(!istype(W, /obj/item/weapon/screwdriver) && !istype(W, /obj/item/weapon/weldingtool) && (W.force) && (!src.target)) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass.
|
||||
src.target = user
|
||||
src.mode = SECBOT_HUNT
|
||||
|
||||
@@ -219,7 +219,7 @@ Auto Patrol: []"},
|
||||
walk_to(src,0)
|
||||
|
||||
if(target) // make sure target exists
|
||||
if(get_dist(src, src.target) <= 1 && isturf(src.target.loc)) // if right next to perp
|
||||
if(src.Adjacent(target) && isturf(src.target.loc)) // if right next to perp
|
||||
playsound(src.loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
||||
src.icon_state = "secbot-c"
|
||||
spawn(2)
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
|
||||
if(2)
|
||||
// State 2
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/C = W
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = W
|
||||
if(C.use(2))
|
||||
user << "You add wires to the assembly."
|
||||
state = 3
|
||||
@@ -110,7 +110,7 @@
|
||||
|
||||
else if(istype(W, /obj/item/weapon/wirecutters))
|
||||
|
||||
new/obj/item/weapon/cable_coil(get_turf(src), 2)
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 2)
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "You cut the wires from the circuits."
|
||||
state = 2
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
|
||||
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
|
||||
component_parts += new /obj/item/weapon/stock_parts/console_screen(null)
|
||||
component_parts += new /obj/item/weapon/cable_coil(null, 1)
|
||||
component_parts += new /obj/item/weapon/cable_coil(null, 1)
|
||||
component_parts += new /obj/item/stack/cable_coil(null, 1)
|
||||
component_parts += new /obj/item/stack/cable_coil(null, 1)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/clonepod/RefreshParts()
|
||||
|
||||
@@ -261,7 +261,7 @@
|
||||
T.temperature = 5000
|
||||
T.hotspot_expose(50000,50000,1)
|
||||
if(L.name=="Holocarp Spawn")
|
||||
new /mob/living/simple_animal/hostile/carp(L.loc)
|
||||
new /mob/living/simple_animal/hostile/carp/holocarp(L.loc)
|
||||
|
||||
|
||||
/obj/machinery/computer/HolodeckControl/proc/emergencyShutdown()
|
||||
@@ -399,13 +399,13 @@
|
||||
force = 30
|
||||
icon_state = "sword[item_color]"
|
||||
w_class = 4
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 20, 1)
|
||||
user << "\blue [src] is now active."
|
||||
else
|
||||
force = 3
|
||||
icon_state = "sword0"
|
||||
w_class = 2
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 20, 1)
|
||||
user << "\blue [src] can now be concealed."
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||
state = 1
|
||||
icon_state = "1"
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
if(P:amount >= 5)
|
||||
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
@@ -80,7 +80,7 @@
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
state = 2
|
||||
icon_state = "2"
|
||||
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( loc )
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( loc )
|
||||
A.amount = 5
|
||||
|
||||
if(istype(P, /obj/item/stack/sheet/rglass))
|
||||
|
||||
@@ -1,125 +1,135 @@
|
||||
/obj/machinery/computer/aifixer
|
||||
name = "\improper AI system integrity restorer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "ai-fixer"
|
||||
req_access = list(access_captain, access_robotics, access_heads)
|
||||
var/mob/living/silicon/ai/occupier = null
|
||||
var/active = 0
|
||||
circuit = /obj/item/weapon/circuitboard/aifixer
|
||||
|
||||
/obj/machinery/computer/aifixer/New()
|
||||
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/computer/aifixer/attackby(I as obj, user as mob)
|
||||
|
||||
if(istype(I, /obj/item/device/aicard))
|
||||
var/obj/item/device/aicard/AIcard = I
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
user << "This terminal isn't functioning right now, get it working!"
|
||||
return
|
||||
AIcard.transfer_ai("AIFIXER","AICARD",src,user)
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/aifixer/attack_hand(var/mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
|
||||
user.set_machine(src)
|
||||
var/dat = ""
|
||||
|
||||
if (src.occupier)
|
||||
var/laws
|
||||
dat += "<h3>Stored AI: [src.occupier.name]</h3>"
|
||||
dat += "<b>System integrity:</b> [(src.occupier.health+100)/2]%<br>"
|
||||
|
||||
if (src.occupier.laws.zeroth)
|
||||
laws += "<b>0:</b> [src.occupier.laws.zeroth]<BR>"
|
||||
|
||||
var/number = 1
|
||||
for (var/index = 1, index <= src.occupier.laws.inherent.len, index++)
|
||||
var/law = src.occupier.laws.inherent[index]
|
||||
if (length(law) > 0)
|
||||
laws += "<b>[number]:</b> [law]<BR>"
|
||||
number++
|
||||
|
||||
for (var/index = 1, index <= src.occupier.laws.supplied.len, index++)
|
||||
var/law = src.occupier.laws.supplied[index]
|
||||
if (length(law) > 0)
|
||||
laws += "<b>[number]:</b> [law]<BR>"
|
||||
number++
|
||||
|
||||
dat += "<b>Laws:</b><br>[laws]<br>"
|
||||
|
||||
if (src.occupier.stat == 2)
|
||||
dat += "<span class='bad'>AI non-functional</span>"
|
||||
else
|
||||
dat += "<span class='good'>AI functional</span>"
|
||||
if (!src.active)
|
||||
dat += {"<br><br><A href='byond://?src=\ref[src];fix=1'>Begin Reconstruction</A>"}
|
||||
else
|
||||
dat += "<br><br>Reconstruction in process, please wait.<br>"
|
||||
dat += {"<br><A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||
|
||||
//user << browse(dat, "window=computer;size=400x500")
|
||||
//onclose(user, "computer")
|
||||
var/datum/browser/popup = new(user, "computer", "AI System Integrity Restorer", 400, 500)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/aifixer/process()
|
||||
if(..())
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/aifixer/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if (href_list["fix"])
|
||||
src.active = 1
|
||||
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-on")
|
||||
while (src.occupier.health < 100)
|
||||
src.occupier.adjustOxyLoss(-1)
|
||||
src.occupier.adjustFireLoss(-1)
|
||||
src.occupier.adjustToxLoss(-1)
|
||||
src.occupier.adjustBruteLoss(-1)
|
||||
src.occupier.updatehealth()
|
||||
if (src.occupier.health >= 0 && src.occupier.stat == 2)
|
||||
src.occupier.stat = 0
|
||||
src.occupier.lying = 0
|
||||
dead_mob_list -= src.occupier
|
||||
living_mob_list += src.occupier
|
||||
src.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404")
|
||||
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
||||
src.updateUsrDialog()
|
||||
sleep(10)
|
||||
src.active = 0
|
||||
src.overlays -= image('icons/obj/computer.dmi', "ai-fixer-on")
|
||||
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/aifixer/update_icon()
|
||||
..()
|
||||
// Broken / Unpowered
|
||||
if((stat & BROKEN) || (stat & NOPOWER))
|
||||
overlays.Cut()
|
||||
|
||||
// Working / Powered
|
||||
else
|
||||
if (occupier)
|
||||
switch (occupier.stat)
|
||||
if (0)
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
||||
if (2)
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
|
||||
else
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
||||
/obj/machinery/computer/aifixer
|
||||
name = "\improper AI system integrity restorer"
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "ai-fixer"
|
||||
req_access = list(access_captain, access_robotics, access_heads)
|
||||
var/mob/living/silicon/ai/occupant = null
|
||||
var/active = 0
|
||||
circuit = /obj/item/weapon/circuitboard/aifixer
|
||||
|
||||
/obj/machinery/computer/aifixer/New()
|
||||
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/computer/aifixer/attackby(I as obj, user as mob)
|
||||
if(occupant && istype(I, /obj/item/weapon/screwdriver))
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
user << "<span class='warning'>The screws on [name]'s screen won't budge.</span>"
|
||||
else
|
||||
user << "<span class='warning'>The screws on [name]'s screen won't budge and it emits a warning beep.</span>"
|
||||
return
|
||||
|
||||
if(istype(I, /obj/item/device/aicard))
|
||||
var/obj/item/device/aicard/AIcard = I
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
if(occupant)
|
||||
AIcard.transfer_ai("AIFIXER","AICARD",src,user)
|
||||
overlays.Cut()
|
||||
return
|
||||
user << "This terminal isn't functioning right now, get it working!"
|
||||
return
|
||||
AIcard.transfer_ai("AIFIXER","AICARD",src,user)
|
||||
else
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/aifixer/attack_hand(var/mob/user as mob)
|
||||
if(..())
|
||||
return
|
||||
|
||||
user.set_machine(src)
|
||||
var/dat = ""
|
||||
|
||||
if (src.occupant)
|
||||
var/laws
|
||||
dat += "<h3>Stored AI: [src.occupant.name]</h3>"
|
||||
dat += "<b>System integrity:</b> [(src.occupant.health+100)/2]%<br>"
|
||||
|
||||
if (src.occupant.laws.zeroth)
|
||||
laws += "<b>0:</b> [src.occupant.laws.zeroth]<BR>"
|
||||
|
||||
var/number = 1
|
||||
for (var/index = 1, index <= src.occupant.laws.inherent.len, index++)
|
||||
var/law = src.occupant.laws.inherent[index]
|
||||
if (length(law) > 0)
|
||||
laws += "<b>[number]:</b> [law]<BR>"
|
||||
number++
|
||||
|
||||
for (var/index = 1, index <= src.occupant.laws.supplied.len, index++)
|
||||
var/law = src.occupant.laws.supplied[index]
|
||||
if (length(law) > 0)
|
||||
laws += "<b>[number]:</b> [law]<BR>"
|
||||
number++
|
||||
|
||||
dat += "<b>Laws:</b><br>[laws]<br>"
|
||||
|
||||
if (src.occupant.stat == 2)
|
||||
dat += "<span class='bad'>AI non-functional</span>"
|
||||
else
|
||||
dat += "<span class='good'>AI functional</span>"
|
||||
if (!src.active)
|
||||
dat += {"<br><br><A href='byond://?src=\ref[src];fix=1'>Begin Reconstruction</A>"}
|
||||
else
|
||||
dat += "<br><br>Reconstruction in process, please wait.<br>"
|
||||
dat += {"<br><A href='?src=\ref[user];mach_close=computer'>Close</A>"}
|
||||
|
||||
//user << browse(dat, "window=computer;size=400x500")
|
||||
//onclose(user, "computer")
|
||||
var/datum/browser/popup = new(user, "computer", "AI System Integrity Restorer", 400, 500)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/aifixer/process()
|
||||
if(..())
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/aifixer/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if (href_list["fix"])
|
||||
src.active = 1
|
||||
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-on")
|
||||
while (src.occupant.health < 100)
|
||||
src.occupant.adjustOxyLoss(-1)
|
||||
src.occupant.adjustFireLoss(-1)
|
||||
src.occupant.adjustToxLoss(-1)
|
||||
src.occupant.adjustBruteLoss(-1)
|
||||
src.occupant.updatehealth()
|
||||
if (src.occupant.health >= 0 && src.occupant.stat == 2)
|
||||
src.occupant.stat = 0
|
||||
src.occupant.lying = 0
|
||||
dead_mob_list -= src.occupant
|
||||
living_mob_list += src.occupant
|
||||
src.overlays -= image('icons/obj/computer.dmi', "ai-fixer-404")
|
||||
src.overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
||||
src.updateUsrDialog()
|
||||
sleep(10)
|
||||
src.active = 0
|
||||
src.overlays -= image('icons/obj/computer.dmi', "ai-fixer-on")
|
||||
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/aifixer/update_icon()
|
||||
..()
|
||||
// Broken / Unpowered
|
||||
if((stat & BROKEN) || (stat & NOPOWER))
|
||||
overlays.Cut()
|
||||
|
||||
// Working / Powered
|
||||
else
|
||||
if (occupant)
|
||||
switch (occupant.stat)
|
||||
if (0)
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-full")
|
||||
if (2)
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-404")
|
||||
else
|
||||
overlays += image('icons/obj/computer.dmi', "ai-fixer-empty")
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/obj/item/toy/prize/mauler = 1,
|
||||
/obj/item/toy/prize/odysseus = 1,
|
||||
/obj/item/toy/prize/phazon = 1,
|
||||
/obj/item/toy/cards = 2,
|
||||
/obj/item/toy/cards/deck = 2,
|
||||
/obj/item/toy/nuke = 2
|
||||
)
|
||||
|
||||
|
||||
@@ -330,8 +330,8 @@
|
||||
user << "<span class='notice'>You unfasten the circuit board.</span>"
|
||||
src.state = 1
|
||||
src.icon_state = "1"
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/C = P
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = P
|
||||
if(C.amount >= 5)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 20))
|
||||
@@ -347,7 +347,7 @@
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
src.state = 2
|
||||
src.icon_state = "2"
|
||||
var/obj/item/weapon/cable_coil/A = new (loc)
|
||||
var/obj/item/stack/cable_coil/A = new (loc)
|
||||
A.amount = 5
|
||||
A.add_fingerprint(user)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
var/mapping = 0//For the overview file, interesting bit of code.
|
||||
|
||||
check_eye(var/mob/user as mob)
|
||||
if ((get_dist(user, src) > 1 || !( user.canmove ) || user.blinded || !( current ) || !( current.status )) && (!istype(user, /mob/living/silicon)))
|
||||
if ((get_dist(user, src) > 1 || user.blinded || !( current ) || !( current.status )) && (!istype(user, /mob/living/silicon)))
|
||||
return null
|
||||
var/list/viewing = viewers(src)
|
||||
if((istype(user,/mob/living/silicon/robot)) && (!(viewing.Find(user))))
|
||||
@@ -20,67 +20,68 @@
|
||||
|
||||
|
||||
attack_hand(var/mob/user as mob)
|
||||
if (src.z > 6)
|
||||
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
||||
return
|
||||
if(!stat)
|
||||
if (src.z > 6)
|
||||
user << "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!"
|
||||
return
|
||||
|
||||
if (!network)
|
||||
world.log << "A computer lacks a network at [x],[y],[z]."
|
||||
return
|
||||
if (!(istype(network,/list)))
|
||||
world.log << "The computer at [x],[y],[z] has a network that is not a list!"
|
||||
return
|
||||
if (!network)
|
||||
world.log << "A computer lacks a network at [x],[y],[z]."
|
||||
return
|
||||
if (!(istype(network,/list)))
|
||||
world.log << "The computer at [x],[y],[z] has a network that is not a list!"
|
||||
return
|
||||
|
||||
if(..())
|
||||
return
|
||||
if(..())
|
||||
return
|
||||
|
||||
var/list/L = list()
|
||||
for (var/obj/machinery/camera/C in cameranet.cameras)
|
||||
L.Add(C)
|
||||
var/list/L = list()
|
||||
for (var/obj/machinery/camera/C in cameranet.cameras)
|
||||
L.Add(C)
|
||||
|
||||
camera_sort(L)
|
||||
camera_sort(L)
|
||||
|
||||
var/list/D = list()
|
||||
D["Cancel"] = "Cancel"
|
||||
for(var/obj/machinery/camera/C in L)
|
||||
if(!C.network)
|
||||
world.log << "[C.c_tag] has no camera network."
|
||||
continue
|
||||
if(!(istype(C.network,/list)))
|
||||
world.log << "[C.c_tag]'s camera network is not a list!"
|
||||
continue
|
||||
var/list/tempnetwork = C.network&network
|
||||
if(tempnetwork.len)
|
||||
D[text("[][]", C.c_tag, (C.status ? null : " (Deactivated)"))] = C
|
||||
var/list/D = list()
|
||||
D["Cancel"] = "Cancel"
|
||||
for(var/obj/machinery/camera/C in L)
|
||||
if(!C.network)
|
||||
world.log << "[C.c_tag] has no camera network."
|
||||
continue
|
||||
if(!(istype(C.network,/list)))
|
||||
world.log << "[C.c_tag]'s camera network is not a list!"
|
||||
continue
|
||||
var/list/tempnetwork = C.network&network
|
||||
if(tempnetwork.len)
|
||||
D[text("[][]", C.c_tag, (C.status ? null : " (Deactivated)"))] = C
|
||||
|
||||
var/t = input(user, "Which camera should you change to?") as null|anything in D
|
||||
if(!t)
|
||||
user.unset_machine()
|
||||
return 0
|
||||
|
||||
var/obj/machinery/camera/C = D[t]
|
||||
|
||||
if(t == "Cancel")
|
||||
user.unset_machine()
|
||||
return 0
|
||||
|
||||
if(C)
|
||||
if ((get_dist(user, src) > 1 || user.machine != src || user.blinded || !( user.canmove ) || !( C.can_use() )) && (!istype(user, /mob/living/silicon/ai)))
|
||||
if(!C.can_use() && !isAI(user))
|
||||
src.current = null
|
||||
var/t = input(user, "Which camera should you change to?") as null|anything in D
|
||||
if(!t)
|
||||
user.unset_machine()
|
||||
return 0
|
||||
else
|
||||
if(isAI(user))
|
||||
var/mob/living/silicon/ai/A = user
|
||||
A.eyeobj.setLoc(get_turf(C))
|
||||
A.client.eye = A.eyeobj
|
||||
else
|
||||
src.current = C
|
||||
use_power(50)
|
||||
|
||||
spawn(5)
|
||||
attack_hand(user)
|
||||
return
|
||||
var/obj/machinery/camera/C = D[t]
|
||||
|
||||
if(t == "Cancel")
|
||||
user.unset_machine()
|
||||
return 0
|
||||
|
||||
if(C)
|
||||
if ((get_dist(user, src) > 1 || user.machine != src || user.blinded || !( C.can_use() )) && (!istype(user, /mob/living/silicon/ai)))
|
||||
if(!C.can_use() && !isAI(user))
|
||||
src.current = null
|
||||
return 0
|
||||
else
|
||||
if(isAI(user))
|
||||
var/mob/living/silicon/ai/A = user
|
||||
A.eyeobj.setLoc(get_turf(C))
|
||||
A.client.eye = A.eyeobj
|
||||
else
|
||||
src.current = C
|
||||
use_power(50)
|
||||
|
||||
spawn(5)
|
||||
attack_hand(user)
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -101,8 +102,8 @@
|
||||
|
||||
/obj/machinery/computer/security/telescreen/entertainment
|
||||
name = "entertainment monitor"
|
||||
desc = "Damn, they better have /tg/thechannel on these things."
|
||||
icon = 'icons/obj/status_display.dmi'
|
||||
desc = "Damn, they better have the /tg/ channel on these things."
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "entertainment"
|
||||
network = list("thunder")
|
||||
density = 0
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
return
|
||||
switch(state)
|
||||
if(1)
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/C = P
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = P
|
||||
if(C.amount >= 5)
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
user << "<span class='notice'>You start to add cables to the frame.</span>"
|
||||
@@ -92,7 +92,7 @@
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
state = 1
|
||||
icon_state = "box_0"
|
||||
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( src.loc )
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( src.loc )
|
||||
A.amount = 5
|
||||
|
||||
if(3)
|
||||
@@ -136,9 +136,9 @@
|
||||
for(var/I in req_components)
|
||||
if(istype(P, text2path(I)) && (req_components[I] > 0))
|
||||
success=1
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/CP = P
|
||||
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src, 1, CP.item_color)
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/CP = P
|
||||
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src, 1, CP.item_color)
|
||||
if(CP.use(1))
|
||||
components += CC
|
||||
req_components[I]--
|
||||
@@ -386,7 +386,7 @@ to destroy them and players will be able to make replacements.
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/matter_bin" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/capacitor" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/pacman/super
|
||||
@@ -405,7 +405,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
board_type = "machine"
|
||||
origin_tech = "programming=3"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/mechfab
|
||||
@@ -425,7 +425,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
board_type = "machine"
|
||||
origin_tech = "programming=3;biotech=3"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/scanning_module" = 2,
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1)
|
||||
@@ -440,7 +440,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser" = 1,
|
||||
"/obj/item/weapon/stock_parts/console_screen" = 1,
|
||||
"/obj/item/weapon/cable_coil" = 2,)
|
||||
"/obj/item/stack/cable_coil" = 2,)
|
||||
|
||||
/obj/item/weapon/circuitboard/cyborgrecharger
|
||||
name = "circuit board (Cyborg Recharger)"
|
||||
@@ -472,7 +472,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/relay
|
||||
@@ -482,7 +482,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
origin_tech = "programming=2;engineering=2;bluespace=2"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 2)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/bus
|
||||
@@ -492,7 +492,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/cable_coil" = 1,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/processor
|
||||
@@ -505,7 +505,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/treatment" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/analyzer" = 1,
|
||||
"/obj/item/weapon/cable_coil" = 2,
|
||||
"/obj/item/stack/cable_coil" = 2,
|
||||
"/obj/item/weapon/stock_parts/subspace/amplifier" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/server
|
||||
@@ -515,7 +515,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
origin_tech = "programming=2;engineering=2"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/cable_coil" = 1,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/broadcaster
|
||||
@@ -525,7 +525,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
origin_tech = "programming=2;engineering=2;bluespace=1"
|
||||
req_components = list(
|
||||
"/obj/item/weapon/stock_parts/manipulator" = 2,
|
||||
"/obj/item/weapon/cable_coil" = 1,
|
||||
"/obj/item/stack/cable_coil" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1,
|
||||
"/obj/item/weapon/stock_parts/subspace/crystal" = 1,
|
||||
"/obj/item/weapon/stock_parts/micro_laser/high" = 2)
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
src.health = max(0, src.health - damage)
|
||||
if (src.health <= 0)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
|
||||
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src.loc)
|
||||
CC.amount = 2
|
||||
src.density = 0
|
||||
del(src)
|
||||
@@ -137,7 +137,7 @@
|
||||
/obj/machinery/door/window/hitby(AM as mob|obj)
|
||||
|
||||
..()
|
||||
visible_message("\red <B>The glass door was hit by [AM].</B>")
|
||||
visible_message("<span class='danger'>\The [src] was hit by \the [AM].</span>")
|
||||
var/tforce = 0
|
||||
if(ismob(AM))
|
||||
tforce = 40
|
||||
@@ -161,7 +161,7 @@
|
||||
visible_message("\red <B>[user] smashes against the [src.name].</B>")
|
||||
if (src.health <= 0)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
|
||||
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src.loc)
|
||||
CC.amount = 2
|
||||
src.density = 0
|
||||
del(src)
|
||||
@@ -199,10 +199,10 @@
|
||||
if(I.damtype == BRUTE || I.damtype == BURN)
|
||||
src.health = max(0, src.health - aforce)
|
||||
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
|
||||
visible_message("\red <B>[src] was hit by [I].</B>")
|
||||
visible_message("<span class='danger'>\The [src] has been hit by [user] with [I].</span>")
|
||||
if (src.health <= 0)
|
||||
new /obj/item/weapon/shard(src.loc)
|
||||
var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc)
|
||||
var/obj/item/stack/cable_coil/CC = new /obj/item/stack/cable_coil(src.loc)
|
||||
CC.amount = 2
|
||||
src.density = 0
|
||||
del(src)
|
||||
|
||||
@@ -268,6 +268,10 @@ Class Procs:
|
||||
user.set_machine(src)
|
||||
return 0
|
||||
|
||||
/obj/machinery/CheckParts()
|
||||
RefreshParts()
|
||||
return
|
||||
|
||||
/obj/machinery/proc/RefreshParts() //Placeholder proc for machines that are built using frames.
|
||||
return
|
||||
|
||||
@@ -317,4 +321,4 @@ Class Procs:
|
||||
anchored = !anchored
|
||||
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
return 1
|
||||
return 0
|
||||
return 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -60,12 +60,15 @@
|
||||
|
||||
cover = new /obj/machinery/porta_turret_cover(loc)
|
||||
cover.Parent_Turret = src
|
||||
setup()
|
||||
|
||||
/obj/machinery/porta_turret/proc/setup()
|
||||
if(!installation) //if for some reason the turret has no gun (ie, admin spawned) it resorts to basic taser shots
|
||||
projectile = /obj/item/projectile/energy/electrode //holder for the projectile, here it is being set
|
||||
eprojectile = /obj/item/projectile/beam //holder for the projectile when emagged, if it is different
|
||||
sound = 1
|
||||
else
|
||||
sound = null
|
||||
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
|
||||
@@ -73,7 +76,7 @@
|
||||
|
||||
switch(E.type)
|
||||
if(/obj/item/weapon/gun/energy/laser/bluetag)
|
||||
eprojectile = /obj/item/projectile/omnitag //This bolt will stun ERRYONE with a vest
|
||||
eprojectile = /obj/item/projectile/bluetag
|
||||
lasercolor = "b"
|
||||
req_access = list(access_maint_tunnels, access_theatre)
|
||||
check_records = 0
|
||||
@@ -84,7 +87,7 @@
|
||||
shot_delay = 30
|
||||
|
||||
if(/obj/item/weapon/gun/energy/laser/redtag)
|
||||
eprojectile = /obj/item/projectile/omnitag
|
||||
eprojectile = /obj/item/projectile/redtag
|
||||
lasercolor = "r"
|
||||
req_access = list(access_maint_tunnels, access_theatre)
|
||||
check_records = 0
|
||||
@@ -768,6 +771,7 @@
|
||||
Turret.name = finish_name
|
||||
Turret.installation = installation
|
||||
Turret.gun_charge = gun_charge
|
||||
Turret.setup()
|
||||
|
||||
// Turret.cover=new/obj/machinery/porta_turret_cover(loc)
|
||||
// Turret.cover.Parent_Turret=Turret
|
||||
@@ -998,4 +1002,4 @@ Status: []<BR>"},
|
||||
|
||||
New()
|
||||
installation = new/obj/item/weapon/gun/energy/laser(loc)
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
if(istype(charging, /obj/item/weapon/melee/baton))
|
||||
var/obj/item/weapon/melee/baton/B = charging
|
||||
if(B.bcell)
|
||||
if(B.bcell.give(175))
|
||||
if(B.bcell.give(1500)) //Because otherwise it takes two minutes to fully charge due to 15k cells. - Neerti
|
||||
icon_state = "recharger1"
|
||||
use_power(200)
|
||||
else
|
||||
|
||||
@@ -139,12 +139,12 @@
|
||||
user << "You remove the cables."
|
||||
icon_state = "borgdecon3"
|
||||
construct_op ++
|
||||
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( user.loc )
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc )
|
||||
A.amount = 5
|
||||
stat |= BROKEN // the machine's been borked!
|
||||
if(3)
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/A = P
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/A = P
|
||||
if(A.amount >= 5)
|
||||
user << "You insert the cables."
|
||||
A.amount -= 5
|
||||
@@ -177,8 +177,8 @@
|
||||
newpath = text2path(I)
|
||||
var/obj/item/s = new newpath
|
||||
s.loc = user.loc
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/A = P
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/A = P
|
||||
A.amount = 1
|
||||
|
||||
// Drop a circuit board too
|
||||
@@ -266,7 +266,7 @@
|
||||
var/coeff = recharge_speed / 200
|
||||
for(var/obj/O in um)
|
||||
// Engineering
|
||||
if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/stack/rods) || istype(O,/obj/item/weapon/cable_coil)|| istype(O,/obj/item/stack/tile/plasteel))
|
||||
if(istype(O,/obj/item/stack/sheet/metal) || istype(O,/obj/item/stack/sheet/rglass) || istype(O,/obj/item/stack/rods) || istype(O,/obj/item/stack/cable_coil)|| istype(O,/obj/item/stack/tile/plasteel))
|
||||
if(O:amount < 50)
|
||||
O:amount += coeff
|
||||
// Security
|
||||
|
||||
@@ -265,8 +265,8 @@
|
||||
user << "\blue You open the panel and expose the wiring."
|
||||
is_open = 1
|
||||
|
||||
else if(istype(W, /obj/item/weapon/cable_coil) && malfunction && is_open)
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
else if(istype(W, /obj/item/stack/cable_coil) && malfunction && is_open)
|
||||
var/obj/item/stack/cable_coil/coil = W
|
||||
user << "\blue You begin to replace the wires."
|
||||
//if(do_after(user, min(60, round( ((maxhealth/health)*10)+(malfunction*10) ))) //Take longer to repair heavier damage
|
||||
if(do_after(user, 30))
|
||||
|
||||
@@ -232,6 +232,8 @@
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/weapon/bombcore/badmin/defuse() //because we wouldn't want them being harvested by players
|
||||
var/obj/machinery/syndicatebomb/B = src.loc
|
||||
del(B)
|
||||
del(src)
|
||||
|
||||
/obj/item/weapon/bombcore/badmin/summon/
|
||||
@@ -239,13 +241,14 @@
|
||||
var/amt_summon = 1
|
||||
|
||||
/obj/item/weapon/bombcore/badmin/summon/detonate()
|
||||
var/obj/machinery/syndicatebomb/B = src.loc
|
||||
for(var/i = 0; i < amt_summon; i++)
|
||||
var/atom/movable/X = new summon_path
|
||||
X.loc = get_turf(src)
|
||||
if(prob(50))
|
||||
for(var/j = 1, j <= rand(1, 3), j++)
|
||||
step(X, pick(NORTH,SOUTH,EAST,WEST))
|
||||
|
||||
del(B)
|
||||
del(src)
|
||||
|
||||
/obj/item/weapon/bombcore/badmin/summon/clown
|
||||
|
||||
@@ -45,12 +45,12 @@
|
||||
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
user << "<span class='notice'>You remove the cables.</span>"
|
||||
construct_op ++
|
||||
var/obj/item/weapon/cable_coil/A = new /obj/item/weapon/cable_coil( user.loc )
|
||||
var/obj/item/stack/cable_coil/A = new /obj/item/stack/cable_coil( user.loc )
|
||||
A.amount = 5
|
||||
stat |= BROKEN // the machine's been borked!
|
||||
if(3)
|
||||
if(istype(P, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/A = P
|
||||
if(istype(P, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/A = P
|
||||
if(A.use(5))
|
||||
user << "<span class='notice'>You insert the cables.</span>"
|
||||
construct_op --
|
||||
@@ -81,8 +81,8 @@
|
||||
newpath = text2path(I)
|
||||
var/obj/item/s = new newpath
|
||||
s.loc = src.loc
|
||||
if(istype(s, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/A = s
|
||||
if(istype(s, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/A = s
|
||||
A.amount = 1
|
||||
A.update_icon()
|
||||
|
||||
|
||||
@@ -715,7 +715,7 @@
|
||||
icon_state = "tool"
|
||||
icon_deny = "tool-deny"
|
||||
//req_access_txt = "12" //Maintenance access
|
||||
products = list(/obj/item/weapon/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5,
|
||||
products = list(/obj/item/stack/cable_coil/random = 10,/obj/item/weapon/crowbar = 5,/obj/item/weapon/weldingtool = 3,/obj/item/weapon/wirecutters = 5,
|
||||
/obj/item/weapon/wrench = 5,/obj/item/device/analyzer = 5,/obj/item/device/t_scanner = 5,/obj/item/weapon/screwdriver = 5)
|
||||
contraband = list(/obj/item/weapon/weldingtool/hugetank = 2,/obj/item/clothing/gloves/fyellow = 2)
|
||||
premium = list(/obj/item/clothing/gloves/yellow = 1)
|
||||
@@ -754,7 +754,7 @@
|
||||
icon_state = "robotics"
|
||||
icon_deny = "robotics-deny"
|
||||
req_access_txt = "29"
|
||||
products = list(/obj/item/clothing/suit/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/weapon/cable_coil = 4,/obj/item/device/flash = 4,
|
||||
products = list(/obj/item/clothing/suit/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4,
|
||||
/obj/item/weapon/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3,
|
||||
/obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5,
|
||||
/obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5)
|
||||
|
||||
@@ -62,9 +62,9 @@
|
||||
ticker.mode.traitors += user.mind
|
||||
user.mind.special_role = "Avatar of the Wish Granter"
|
||||
|
||||
var/datum/objective/silence/silence = new
|
||||
silence.owner = user.mind
|
||||
user.mind.objectives += silence
|
||||
var/datum/objective/hijack/hijack = new
|
||||
hijack.owner = user.mind
|
||||
user.mind.objectives += hijack
|
||||
|
||||
var/obj_count = 1
|
||||
for(var/datum/objective/OBJ in user.mind.objectives)
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
var/datum/event/event
|
||||
var/turf/old_turf
|
||||
var/obj/structure/cable/last_piece
|
||||
var/obj/item/weapon/cable_coil/cable
|
||||
var/obj/item/stack/cable_coil/cable
|
||||
var/max_cable = 1000
|
||||
|
||||
New()
|
||||
@@ -274,7 +274,7 @@
|
||||
chassis.events.clearEvent("onMove",event)
|
||||
return ..()
|
||||
|
||||
action(var/obj/item/weapon/cable_coil/target)
|
||||
action(var/obj/item/stack/cable_coil/target)
|
||||
if(!action_checks(target))
|
||||
return
|
||||
var/result = load_cable(target)
|
||||
@@ -302,7 +302,7 @@
|
||||
m = min(m, cable.amount)
|
||||
if(m)
|
||||
use_cable(m)
|
||||
var/obj/item/weapon/cable_coil/CC = new (get_turf(chassis))
|
||||
var/obj/item/stack/cable_coil/CC = new (get_turf(chassis))
|
||||
CC.amount = m
|
||||
else
|
||||
occupant_message("There's no more cable on the reel.")
|
||||
@@ -314,7 +314,7 @@
|
||||
return "[output] \[Cable: [cable ? cable.amount : 0] m\][(cable && cable.amount) ? "- <a href='?src=\ref[src];toggle=1'>[!equip_ready?"Dea":"A"]ctivate</a>|<a href='?src=\ref[src];cut=1'>Cut</a>" : null]"
|
||||
return
|
||||
|
||||
proc/load_cable(var/obj/item/weapon/cable_coil/CC)
|
||||
proc/load_cable(var/obj/item/stack/cable_coil/CC)
|
||||
if(istype(CC) && CC.amount)
|
||||
var/cur_amount = cable? cable.amount : 0
|
||||
var/to_load = max(max_cable - cur_amount,0)
|
||||
|
||||
@@ -702,9 +702,9 @@
|
||||
state=2
|
||||
user << "You close the hatch to the power unit"
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/cable_coil))
|
||||
else if(istype(W, /obj/item/stack/cable_coil))
|
||||
if(state == 3 && hasInternalDamage(MECHA_INT_SHORT_CIRCUIT))
|
||||
var/obj/item/weapon/cable_coil/CC = W
|
||||
var/obj/item/stack/cable_coil/CC = W
|
||||
if(CC.amount > 1)
|
||||
CC.use(2)
|
||||
clearInternalDamage(MECHA_INT_SHORT_CIRCUIT)
|
||||
|
||||
@@ -18,8 +18,8 @@
|
||||
else if(istype(used_atom, /obj/item/weapon/wirecutters))
|
||||
playsound(holder, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
|
||||
else if(istype(used_atom, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/C = used_atom
|
||||
else if(istype(used_atom, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = used_atom
|
||||
if(C.amount<4)
|
||||
user << ("There's not enough cable to finish the task.")
|
||||
return 0
|
||||
@@ -51,8 +51,8 @@
|
||||
else if(istype(used_atom, /obj/item/weapon/wirecutters))
|
||||
playsound(holder, 'sound/items/Wirecutter.ogg', 50, 1)
|
||||
|
||||
else if(istype(used_atom, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/C = used_atom
|
||||
else if(istype(used_atom, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = used_atom
|
||||
if(C.amount<4)
|
||||
user << ("There's not enough cable to finish the task.")
|
||||
return 0
|
||||
@@ -146,7 +146,7 @@
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//12
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//13
|
||||
@@ -190,7 +190,7 @@
|
||||
holder.icon_state = "ripley4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "ripley2"
|
||||
if(10)
|
||||
@@ -380,7 +380,7 @@
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//18
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//19
|
||||
@@ -424,7 +424,7 @@
|
||||
holder.icon_state = "gygax4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "gygax2"
|
||||
if(16)
|
||||
@@ -641,7 +641,7 @@
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//13
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//14
|
||||
@@ -685,7 +685,7 @@
|
||||
holder.icon_state = "fireripley4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "fireripley2"
|
||||
if(11)
|
||||
@@ -961,7 +961,7 @@
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//18
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//19
|
||||
@@ -1006,7 +1006,7 @@
|
||||
holder.icon_state = "durand4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "durand2"
|
||||
if(16)
|
||||
@@ -1241,7 +1241,7 @@
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The wiring is added"),
|
||||
//12
|
||||
list("key"=/obj/item/weapon/cable_coil,
|
||||
list("key"=/obj/item/stack/cable_coil,
|
||||
"backkey"=/obj/item/weapon/screwdriver,
|
||||
"desc"="The hydraulic systems are active."),
|
||||
//13
|
||||
@@ -1285,7 +1285,7 @@
|
||||
holder.icon_state = "odysseus4"
|
||||
else
|
||||
user.visible_message("[user] removes the wiring from [holder].", "You remove the wiring from [holder].")
|
||||
var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil(get_turf(holder))
|
||||
var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
|
||||
coil.amount = 4
|
||||
holder.icon_state = "odysseus2"
|
||||
if(10)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
anchored = 0
|
||||
opacity = 0
|
||||
var/list/welder_salvage = list(/obj/item/stack/sheet/plasteel,/obj/item/stack/sheet/metal,/obj/item/stack/rods)
|
||||
var/list/wirecutters_salvage = list(/obj/item/weapon/cable_coil)
|
||||
var/list/wirecutters_salvage = list(/obj/item/stack/cable_coil)
|
||||
var/list/crowbar_salvage = list()
|
||||
var/salvage_num = 5
|
||||
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
/proc/gibs(atom/location, var/list/viruses, var/datum/dna/MobDNA)
|
||||
new /obj/effect/gibspawner/generic(get_turf(location),viruses,MobDNA)
|
||||
new /obj/effect/gibspawner/generic(location,viruses,MobDNA)
|
||||
|
||||
/proc/hgibs(atom/location, var/list/viruses, var/datum/dna/MobDNA)
|
||||
new /obj/effect/gibspawner/human(get_turf(location),viruses,MobDNA)
|
||||
new /obj/effect/gibspawner/human(location,viruses,MobDNA)
|
||||
|
||||
/proc/xgibs(atom/location, var/list/viruses)
|
||||
new /obj/effect/gibspawner/xeno(get_turf(location),viruses)
|
||||
new /obj/effect/gibspawner/xeno(location,viruses)
|
||||
|
||||
/proc/robogibs(atom/location, var/list/viruses)
|
||||
new /obj/effect/gibspawner/robot(get_turf(location),viruses)
|
||||
new /obj/effect/gibspawner/robot(location,viruses)
|
||||
|
||||
/obj/effect/gibspawner
|
||||
var/sparks = 0 //whether sparks spread on Gib()
|
||||
@@ -20,8 +20,7 @@
|
||||
New(location, var/list/viruses, var/datum/dna/MobDNA)
|
||||
..()
|
||||
|
||||
if(istype(loc,/turf)) //basically if a badmin spawns it
|
||||
Gib(loc,viruses,MobDNA)
|
||||
Gib(loc,viruses,MobDNA)
|
||||
|
||||
proc/Gib(atom/location, var/list/viruses = list(), var/datum/dna/MobDNA = null)
|
||||
if(gibtypes.len != gibamounts.len || gibamounts.len != gibdirections.len)
|
||||
@@ -43,6 +42,9 @@
|
||||
for(var/j = 1, j<= gibamounts[i], j++)
|
||||
var/gibType = gibtypes[i]
|
||||
gib = new gibType(location)
|
||||
if(istype(location,/mob/living/carbon))
|
||||
var/mob/living/carbon/digester = location
|
||||
digester.stomach_contents += gib
|
||||
|
||||
if(viruses.len > 0)
|
||||
for(var/datum/disease/D in viruses)
|
||||
@@ -59,7 +61,8 @@
|
||||
else if(istype(src, /obj/effect/gibspawner/human)) // Probably a monkey
|
||||
gib.blood_DNA["Non-human DNA"] = "A+"
|
||||
var/list/directions = gibdirections[i]
|
||||
if(directions.len)
|
||||
gib.streak(directions)
|
||||
if(istype(loc,/turf))
|
||||
if(directions.len)
|
||||
gib.streak(directions)
|
||||
|
||||
del(src)
|
||||
@@ -93,7 +93,7 @@
|
||||
desc = "It never stays still for long."
|
||||
icon_state = "spiderling"
|
||||
anchored = 0
|
||||
layer = 2.7
|
||||
layer = 2.75
|
||||
health = 3
|
||||
var/amount_grown = 0
|
||||
var/grow_as = null
|
||||
|
||||
@@ -2,16 +2,12 @@
|
||||
name = "item"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
var/item_state = null
|
||||
var/r_speed = 1.0
|
||||
var/health = null
|
||||
var/burn_point = null
|
||||
var/burning = null
|
||||
var/hitsound = null
|
||||
var/throwhitsound = null
|
||||
var/w_class = 3.0
|
||||
var/slot_flags = 0 //This is used to determine on which slots an item can fit.
|
||||
pass_flags = PASSTABLE
|
||||
pressure_resistance = 5
|
||||
// causeerrorheresoifixthis
|
||||
var/obj/item/master = null
|
||||
|
||||
var/heat_protection = 0 //flags which determine which body parts are protected from heat. Use the HEAD, CHEST, GROIN, etc. flags. See setup.dm
|
||||
@@ -108,7 +104,16 @@
|
||||
if(src.blood_DNA)
|
||||
f_name = "a bloody [name]"
|
||||
|
||||
usr << "\icon[src]This is [f_name]. It is a [size] item."
|
||||
var/determiner
|
||||
var/pronoun
|
||||
if(src.gender == PLURAL)
|
||||
determiner = "These are"
|
||||
pronoun = "They are"
|
||||
else
|
||||
determiner = "This is"
|
||||
pronoun = "It is"
|
||||
|
||||
usr << "\icon[src][determiner] [f_name]. [pronoun] a [size] item." //e.g. These are some gloves. They are a small item. or This is a toolbox. It is a bulky item.
|
||||
|
||||
if(src.desc)
|
||||
usr << src.desc
|
||||
@@ -556,4 +561,5 @@
|
||||
/obj/item/clothing/gloves/clean_blood()
|
||||
. = ..()
|
||||
if(.)
|
||||
transfer_blood = 0
|
||||
transfer_blood = 0
|
||||
bloody_hands_mob = null
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
usr << "\red There is another network terminal here."
|
||||
return
|
||||
else
|
||||
var/obj/item/weapon/cable_coil/C = new /obj/item/weapon/cable_coil(loc)
|
||||
var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(loc)
|
||||
C.amount = 10
|
||||
usr << "You cut the cables and disassemble the unused power terminal."
|
||||
del(T)
|
||||
|
||||
@@ -125,6 +125,8 @@ A list of items and costs is stored under the datum of every game mode, alongsid
|
||||
desc = "There is something wrong if you're examining this."
|
||||
|
||||
/obj/item/device/uplink/hidden/Topic(href, href_list)
|
||||
if(usr.stat || usr.restrained() || usr.paralysis || usr.stunned || usr.weakened)
|
||||
return 0 // To stop people using their uplink when they shouldn't be able to
|
||||
..()
|
||||
if(href_list["lock"])
|
||||
toggle()
|
||||
|
||||
@@ -239,12 +239,12 @@
|
||||
W.loc = src
|
||||
src.cell = W
|
||||
user << "\blue You insert the cell!"
|
||||
if(istype(W, /obj/item/weapon/cable_coil))
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
if(src.wires)
|
||||
user << "\blue You have already inserted wire!"
|
||||
return
|
||||
else
|
||||
var/obj/item/weapon/cable_coil/coil = W
|
||||
var/obj/item/stack/cable_coil/coil = W
|
||||
coil.use(1)
|
||||
src.wires = 1.0
|
||||
user << "\blue You insert the wire!"
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user)
|
||||
..()
|
||||
add_fingerprint(user)
|
||||
if(istype(W,/obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/CC = W
|
||||
if(istype(W,/obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/CC = W
|
||||
if(CC.amount < 5)
|
||||
user << "\b There is not enough wire in this coil. You need 5 lengths."
|
||||
return
|
||||
@@ -248,6 +248,7 @@
|
||||
item_state = "shard-glass"
|
||||
g_amt = 3750
|
||||
attack_verb = list("stabbed", "slashed", "sliced", "cut")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << pick("<span class='suicide'>[user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.</span>", \
|
||||
@@ -268,12 +269,6 @@
|
||||
pixel_x = rand(-5, 5)
|
||||
pixel_y = rand(-5, 5)
|
||||
|
||||
|
||||
/obj/item/weapon/shard/attack(mob/M, mob/user)
|
||||
playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1)
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/weapon/shard/afterattack(atom/A as mob|obj, mob/user, proximity)
|
||||
if(!proximity || !(src in user)) return
|
||||
if(isturf(A))
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
/obj/item/stack/light_w/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
||||
..()
|
||||
if(istype(O,/obj/item/weapon/wirecutters))
|
||||
var/obj/item/weapon/cable_coil/CC = new (user.loc)
|
||||
var/obj/item/stack/cable_coil/CC = new (user.loc)
|
||||
CC.amount = 5
|
||||
CC.add_fingerprint(user)
|
||||
amount--
|
||||
|
||||
@@ -314,7 +314,7 @@
|
||||
active = !( active )
|
||||
if (active)
|
||||
user << "\blue You extend the plastic blade with a quick flick of your wrist."
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 20, 1)
|
||||
if(hacked)
|
||||
icon_state = "swordrainbow"
|
||||
item_state = "swordrainbow"
|
||||
@@ -324,7 +324,7 @@
|
||||
w_class = 4
|
||||
else
|
||||
user << "\blue You push the plastic blade back down into the handle."
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 20, 1)
|
||||
icon_state = "sword0"
|
||||
item_state = "sword0"
|
||||
w_class = 2
|
||||
@@ -399,6 +399,7 @@
|
||||
throwforce = 5
|
||||
w_class = 3
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/*
|
||||
* Crayons
|
||||
@@ -566,15 +567,35 @@
|
||||
|
||||
|
||||
obj/item/toy/cards
|
||||
name = "deck of cards"
|
||||
desc = "A deck of space-grade playing cards."
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "deck_full"
|
||||
w_class = 2.0
|
||||
var/list/cards = list()
|
||||
var/parentdeck = null
|
||||
var/deckstyle = "nanotrasen"
|
||||
var/card_hitsound = null
|
||||
var/card_force = 0
|
||||
var/card_throwforce = 0
|
||||
var/card_throw_speed = 4
|
||||
var/card_throw_range = 20
|
||||
var/list/card_attack_verb = list("attacked")
|
||||
|
||||
obj/item/toy/cards/New()
|
||||
..()
|
||||
|
||||
obj/item/toy/cards/proc/apply_card_vars(obj/item/toy/cards/newobj, obj/item/toy/cards/sourceobj) // Applies variables for supporting multiple types of card deck
|
||||
if(!istype(sourceobj))
|
||||
return
|
||||
|
||||
obj/item/toy/cards/deck
|
||||
name = "deck of cards"
|
||||
desc = "A deck of space-grade playing cards."
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
deckstyle = "nanotrasen"
|
||||
icon_state = "deck_nanotrasen_full"
|
||||
w_class = 2.0
|
||||
var/cooldown = 0
|
||||
var/list/cards = list()
|
||||
|
||||
obj/item/toy/cards/deck/New()
|
||||
..()
|
||||
icon_state = "deck_[deckstyle]_full"
|
||||
for(var/i = 2; i <= 10; i++)
|
||||
cards += "[i] of Hearts"
|
||||
cards += "[i] of Spades"
|
||||
@@ -598,33 +619,37 @@ obj/item/toy/cards/New()
|
||||
cards += "Ace of Diamonds"
|
||||
|
||||
|
||||
obj/item/toy/cards/attack_hand(mob/user as mob)
|
||||
obj/item/toy/cards/deck/attack_hand(mob/user as mob)
|
||||
var/choice = null
|
||||
if(cards.len == 0)
|
||||
src.icon_state = "deck_empty"
|
||||
src.icon_state = "deck_[deckstyle]_empty"
|
||||
user << "<span class='notice'>There are no more cards to draw.</span>"
|
||||
return
|
||||
var/obj/item/toy/singlecard/H = new/obj/item/toy/singlecard(user.loc)
|
||||
var/obj/item/toy/cards/singlecard/H = new/obj/item/toy/cards/singlecard(user.loc)
|
||||
choice = cards[1]
|
||||
H.cardname = choice
|
||||
H.parentdeck = src
|
||||
var/O = src
|
||||
H.apply_card_vars(H,O)
|
||||
src.cards -= choice
|
||||
H.pickup(user)
|
||||
user.put_in_active_hand(H)
|
||||
src.visible_message("<span class='notice'>[user] draws a card from the deck.</span>", "<span class='notice'>You draw a card from the deck.</span>")
|
||||
if(cards.len > 26)
|
||||
src.icon_state = "deck_full"
|
||||
src.icon_state = "deck_[deckstyle]_full"
|
||||
else if(cards.len > 10)
|
||||
src.icon_state = "deck_half"
|
||||
src.icon_state = "deck_[deckstyle]_half"
|
||||
else if(cards.len > 1)
|
||||
src.icon_state = "deck_low"
|
||||
src.icon_state = "deck_[deckstyle]_low"
|
||||
|
||||
obj/item/toy/cards/attack_self(mob/user as mob)
|
||||
cards = shuffle(cards)
|
||||
playsound(user, 'sound/items/cardshuffle.ogg', 50, 1)
|
||||
user.visible_message("<span class='notice'>[user] shuffles the deck.</span>", "<span class='notice'>You shuffle the deck.</span>")
|
||||
obj/item/toy/cards/deck/attack_self(mob/user as mob)
|
||||
if(cooldown < world.time - 50)
|
||||
cards = shuffle(cards)
|
||||
playsound(user, 'sound/items/cardshuffle.ogg', 50, 1)
|
||||
user.visible_message("<span class='notice'>[user] shuffles the deck.</span>", "<span class='notice'>You shuffle the deck.</span>")
|
||||
cooldown = world.time
|
||||
|
||||
obj/item/toy/cards/attackby(obj/item/toy/singlecard/C, mob/living/user)
|
||||
obj/item/toy/cards/deck/attackby(obj/item/toy/cards/singlecard/C, mob/living/user)
|
||||
..()
|
||||
if(istype(C))
|
||||
if(C.parentdeck == src)
|
||||
@@ -635,14 +660,14 @@ obj/item/toy/cards/attackby(obj/item/toy/singlecard/C, mob/living/user)
|
||||
else
|
||||
user << "<span class='notice'>You can't mix cards from other decks.</span>"
|
||||
if(cards.len > 26)
|
||||
src.icon_state = "deck_full"
|
||||
src.icon_state = "deck_[deckstyle]_full"
|
||||
else if(cards.len > 10)
|
||||
src.icon_state = "deck_half"
|
||||
src.icon_state = "deck_[deckstyle]_half"
|
||||
else if(cards.len > 1)
|
||||
src.icon_state = "deck_low"
|
||||
src.icon_state = "deck_[deckstyle]_low"
|
||||
|
||||
|
||||
obj/item/toy/cards/attackby(obj/item/toy/cardhand/C, mob/living/user)
|
||||
obj/item/toy/cards/deck/attackby(obj/item/toy/cards/cardhand/C, mob/living/user)
|
||||
..()
|
||||
if(istype(C))
|
||||
if(C.parentdeck == src)
|
||||
@@ -653,13 +678,13 @@ obj/item/toy/cards/attackby(obj/item/toy/cardhand/C, mob/living/user)
|
||||
else
|
||||
user << "<span class='notice'>You can't mix cards from other decks.</span>"
|
||||
if(cards.len > 26)
|
||||
src.icon_state = "deck_full"
|
||||
src.icon_state = "deck_[deckstyle]_full"
|
||||
else if(cards.len > 10)
|
||||
src.icon_state = "deck_half"
|
||||
src.icon_state = "deck_[deckstyle]_half"
|
||||
else if(cards.len > 1)
|
||||
src.icon_state = "deck_low"
|
||||
src.icon_state = "deck_[deckstyle]_low"
|
||||
|
||||
obj/item/toy/cards/MouseDrop(atom/over_object)
|
||||
obj/item/toy/cards/deck/MouseDrop(atom/over_object)
|
||||
var/mob/M = usr
|
||||
if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained())
|
||||
return
|
||||
@@ -683,22 +708,21 @@ obj/item/toy/cards/MouseDrop(atom/over_object)
|
||||
|
||||
|
||||
|
||||
obj/item/toy/cardhand
|
||||
obj/item/toy/cards/cardhand
|
||||
name = "hand of cards"
|
||||
desc = "A number of cards not in a deck, customarily held in ones hand."
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "hand2"
|
||||
icon_state = "nanotrasen_hand2"
|
||||
w_class = 1.0
|
||||
var/list/currenthand = list()
|
||||
var/obj/item/toy/cards/parentdeck = null
|
||||
var/choice = null
|
||||
|
||||
|
||||
obj/item/toy/cardhand/attack_self(mob/user as mob)
|
||||
obj/item/toy/cards/cardhand/attack_self(mob/user as mob)
|
||||
user.set_machine(src)
|
||||
interact(user)
|
||||
|
||||
obj/item/toy/cardhand/interact(mob/user)
|
||||
obj/item/toy/cards/cardhand/interact(mob/user)
|
||||
var/dat = "You have:<BR>"
|
||||
for(var/t in currenthand)
|
||||
dat += "<A href='?src=\ref[src];pick=[t]'>A [t].</A><BR>"
|
||||
@@ -709,36 +733,37 @@ obj/item/toy/cardhand/interact(mob/user)
|
||||
popup.open()
|
||||
|
||||
|
||||
obj/item/toy/cardhand/Topic(href, href_list)
|
||||
obj/item/toy/cards/cardhand/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if(usr.stat || !ishuman(usr) || !usr.canmove)
|
||||
return
|
||||
var/mob/living/carbon/human/cardUser = usr
|
||||
var/O = src
|
||||
if(href_list["pick"])
|
||||
if (cardUser.get_item_by_slot(slot_l_hand) == src || cardUser.get_item_by_slot(slot_r_hand) == src)
|
||||
var/choice = href_list["pick"]
|
||||
var/obj/item/toy/singlecard/C = new/obj/item/toy/singlecard(cardUser.loc)
|
||||
var/obj/item/toy/cards/singlecard/C = new/obj/item/toy/cards/singlecard(cardUser.loc)
|
||||
src.currenthand -= choice
|
||||
C.parentdeck = src.parentdeck
|
||||
C.cardname = choice
|
||||
C.apply_card_vars(C,O)
|
||||
C.pickup(cardUser)
|
||||
cardUser.put_in_any_hand_if_possible(C)
|
||||
cardUser.visible_message("<span class='notice'>[cardUser] draws a card from \his hand.</span>", "<span class='notice'>You take the [C.cardname] from your hand.</span>")
|
||||
|
||||
interact(cardUser)
|
||||
|
||||
if(src.currenthand.len < 3)
|
||||
src.icon_state = "hand2"
|
||||
src.icon_state = "[deckstyle]_hand2"
|
||||
else if(src.currenthand.len < 4)
|
||||
src.icon_state = "hand3"
|
||||
src.icon_state = "[deckstyle]_hand3"
|
||||
else if(src.currenthand.len < 5)
|
||||
src.icon_state = "hand4"
|
||||
|
||||
src.icon_state = "[deckstyle]_hand4"
|
||||
if(src.currenthand.len == 1)
|
||||
var/obj/item/toy/singlecard/N = new/obj/item/toy/singlecard(src.loc)
|
||||
var/obj/item/toy/cards/singlecard/N = new/obj/item/toy/cards/singlecard(src.loc)
|
||||
N.parentdeck = src.parentdeck
|
||||
N.cardname = src.currenthand[1]
|
||||
N.apply_card_vars(N,O)
|
||||
cardUser.u_equip(src)
|
||||
N.pickup(cardUser)
|
||||
cardUser.put_in_any_hand_if_possible(N)
|
||||
@@ -747,7 +772,7 @@ obj/item/toy/cardhand/Topic(href, href_list)
|
||||
del(src)
|
||||
return
|
||||
|
||||
obj/item/toy/cardhand/attackby(obj/item/toy/singlecard/C, mob/living/user)
|
||||
obj/item/toy/cards/cardhand/attackby(obj/item/toy/cards/singlecard/C, mob/living/user)
|
||||
if(istype(C))
|
||||
if(C.parentdeck == src.parentdeck)
|
||||
src.currenthand += C.cardname
|
||||
@@ -755,31 +780,39 @@ obj/item/toy/cardhand/attackby(obj/item/toy/singlecard/C, mob/living/user)
|
||||
user.visible_message("<span class='notice'>[user] adds a card to their hand.</span>", "<span class='notice'>You add the [C.cardname] to your hand.</span>")
|
||||
interact(user)
|
||||
if(currenthand.len > 4)
|
||||
src.icon_state = "hand5"
|
||||
src.icon_state = "[deckstyle]_hand5"
|
||||
else if(currenthand.len > 3)
|
||||
src.icon_state = "hand4"
|
||||
src.icon_state = "[deckstyle]_hand4"
|
||||
else if(currenthand.len > 2)
|
||||
src.icon_state = "hand3"
|
||||
src.icon_state = "[deckstyle]_hand3"
|
||||
del(C)
|
||||
else
|
||||
user << "<span class='notice'>You can't mix cards from other decks.</span>"
|
||||
|
||||
obj/item/toy/cards/cardhand/apply_card_vars(obj/item/toy/cards/newobj,obj/item/toy/cards/sourceobj)
|
||||
..()
|
||||
newobj.deckstyle = sourceobj.deckstyle
|
||||
newobj.icon_state = "[deckstyle]_hand2" // Another dumb hack, without this the hand is invisible (or has the default deckstyle) until another card is added.
|
||||
newobj.card_hitsound = sourceobj.card_hitsound
|
||||
newobj.card_force = sourceobj.card_force
|
||||
newobj.card_throwforce = sourceobj.card_throwforce
|
||||
newobj.card_throw_speed = sourceobj.card_throw_speed
|
||||
newobj.card_throw_range = sourceobj.card_throw_range
|
||||
newobj.card_attack_verb = sourceobj.card_attack_verb
|
||||
|
||||
|
||||
|
||||
|
||||
obj/item/toy/singlecard
|
||||
obj/item/toy/cards/singlecard
|
||||
name = "card"
|
||||
desc = "a card"
|
||||
icon = 'icons/obj/toy.dmi'
|
||||
icon_state = "singlecard_down"
|
||||
icon_state = "singlecard_nanotrasen_down"
|
||||
w_class = 1.0
|
||||
var/cardname = null
|
||||
var/obj/item/toy/cards/parentdeck = null
|
||||
var/flipped = 0
|
||||
pixel_x = -5
|
||||
|
||||
obj/item/toy/singlecard/examine()
|
||||
|
||||
obj/item/toy/cards/singlecard/examine()
|
||||
set src in usr.contents
|
||||
if(ishuman(usr))
|
||||
var/mob/living/carbon/human/cardUser = usr
|
||||
@@ -789,7 +822,7 @@ obj/item/toy/singlecard/examine()
|
||||
cardUser << "<span class='notice'>You need to have the card in your hand to check it.</span>"
|
||||
|
||||
|
||||
obj/item/toy/singlecard/verb/Flip()
|
||||
obj/item/toy/cards/singlecard/verb/Flip()
|
||||
set name = "Flip Card"
|
||||
set category = "Object"
|
||||
set src in range(1)
|
||||
@@ -798,26 +831,27 @@ obj/item/toy/singlecard/verb/Flip()
|
||||
if(!flipped)
|
||||
src.flipped = 1
|
||||
if (cardname)
|
||||
src.icon_state = "sc_[cardname]"
|
||||
src.icon_state = "sc_[cardname]_[deckstyle]"
|
||||
src.name = src.cardname
|
||||
else
|
||||
src.icon_state = "sc_Ace of Spades"
|
||||
src.icon_state = "sc_Ace of Spades_[deckstyle]"
|
||||
src.name = "What Card"
|
||||
src.pixel_x = 5
|
||||
else if(flipped)
|
||||
src.flipped = 0
|
||||
src.icon_state = "singlecard_down"
|
||||
src.icon_state = "singlecard_down_[deckstyle]"
|
||||
src.name = "card"
|
||||
src.pixel_x = -5
|
||||
|
||||
obj/item/toy/singlecard/attackby(obj/item/I, mob/living/user)
|
||||
if(istype(I, /obj/item/toy/singlecard/))
|
||||
var/obj/item/toy/singlecard/C = I
|
||||
obj/item/toy/cards/singlecard/attackby(obj/item/I, mob/living/user)
|
||||
if(istype(I, /obj/item/toy/cards/singlecard/))
|
||||
var/obj/item/toy/cards/singlecard/C = I
|
||||
if(C.parentdeck == src.parentdeck)
|
||||
var/obj/item/toy/cardhand/H = new/obj/item/toy/cardhand(user.loc)
|
||||
var/obj/item/toy/cards/cardhand/H = new/obj/item/toy/cards/cardhand(user.loc)
|
||||
H.currenthand += C.cardname
|
||||
H.currenthand += src.cardname
|
||||
H.parentdeck = C.parentdeck
|
||||
H.apply_card_vars(H,C)
|
||||
user.u_equip(C)
|
||||
H.pickup(user)
|
||||
user.put_in_active_hand(H)
|
||||
@@ -827,29 +861,62 @@ obj/item/toy/singlecard/attackby(obj/item/I, mob/living/user)
|
||||
else
|
||||
user << "<span class='notice'>You can't mix cards from other decks.</span>"
|
||||
|
||||
if(istype(I, /obj/item/toy/cardhand/))
|
||||
var/obj/item/toy/cardhand/H = I
|
||||
if(istype(I, /obj/item/toy/cards/cardhand/))
|
||||
var/obj/item/toy/cards/cardhand/H = I
|
||||
if(H.parentdeck == parentdeck)
|
||||
H.currenthand += cardname
|
||||
user.u_equip(src)
|
||||
user.visible_message("<span class='notice'>[user] adds a card to \his hand.</span>", "<span class='notice'>You add the [cardname] to your hand.</span>")
|
||||
H.interact(user)
|
||||
if(H.currenthand.len > 4)
|
||||
H.icon_state = "hand5"
|
||||
H.icon_state = "[deckstyle]_hand5"
|
||||
else if(H.currenthand.len > 3)
|
||||
H.icon_state = "hand4"
|
||||
H.icon_state = "[deckstyle]_hand4"
|
||||
else if(H.currenthand.len > 2)
|
||||
H.icon_state = "hand3"
|
||||
H.icon_state = "[deckstyle]_hand3"
|
||||
del(src)
|
||||
else
|
||||
user << "<span class='notice'>You can't mix cards from other decks.</span>"
|
||||
|
||||
|
||||
obj/item/toy/singlecard/attack_self(mob/user)
|
||||
obj/item/toy/cards/singlecard/attack_self(mob/user)
|
||||
if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained())
|
||||
return
|
||||
Flip()
|
||||
|
||||
obj/item/toy/cards/singlecard/apply_card_vars(obj/item/toy/cards/singlecard/newobj,obj/item/toy/cards/sourceobj)
|
||||
..()
|
||||
newobj.deckstyle = sourceobj.deckstyle
|
||||
newobj.icon_state = "singlecard_down_[deckstyle]" // Without this the card is invisible until flipped. It's an ugly hack, but it works.
|
||||
newobj.card_hitsound = sourceobj.card_hitsound
|
||||
newobj.hitsound = newobj.card_hitsound
|
||||
newobj.card_force = sourceobj.card_force
|
||||
newobj.force = newobj.card_force
|
||||
newobj.card_throwforce = sourceobj.card_throwforce
|
||||
newobj.throwforce = newobj.card_throwforce
|
||||
newobj.card_throw_speed = sourceobj.card_throw_speed
|
||||
newobj.throw_speed = newobj.card_throw_speed
|
||||
newobj.card_throw_range = sourceobj.card_throw_range
|
||||
newobj.throw_range = newobj.card_throw_range
|
||||
newobj.card_attack_verb = sourceobj.card_attack_verb
|
||||
newobj.attack_verb = newobj.card_attack_verb
|
||||
|
||||
|
||||
/*
|
||||
|| Syndicate playing cards, for pretending you're Gambit and playing poker for the nuke disk. ||
|
||||
*/
|
||||
|
||||
obj/item/toy/cards/deck/syndicate
|
||||
name = "suspicious looking deck of cards"
|
||||
desc = "A deck of space-grade playing cards. They seem unusually rigid."
|
||||
deckstyle = "syndicate"
|
||||
card_hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
card_force = 15
|
||||
card_throwforce = 15
|
||||
card_throw_speed = 6
|
||||
card_throw_range = 20
|
||||
card_attack_verb = list("attacked", "sliced", "diced", "slashed", "cut")
|
||||
|
||||
|
||||
/obj/item/toy/nuke
|
||||
name = "\improper Nuclear Fission Explosive toy"
|
||||
@@ -879,4 +946,3 @@ obj/item/toy/singlecard/attack_self(mob/user)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,14 +24,20 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
var/smoketime = 5
|
||||
w_class = 1.0
|
||||
origin_tech = "materials=1"
|
||||
attack_verb = list("burnt", "singed")
|
||||
attack_verb = null
|
||||
|
||||
/obj/item/weapon/match/process()
|
||||
var/turf/location = get_turf(src)
|
||||
smoketime--
|
||||
if(smoketime < 1)
|
||||
icon_state = "match_burnt"
|
||||
lit = -1
|
||||
damtype = "brute"
|
||||
force = 0
|
||||
icon_state = "match_burnt"
|
||||
item_state = "cigoff"
|
||||
name = "burnt match"
|
||||
desc = "A match. This one has seen better days."
|
||||
attack_verb = null
|
||||
processing_objects.Remove(src)
|
||||
return
|
||||
if(location)
|
||||
@@ -46,6 +52,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
item_state = "cigoff"
|
||||
name = "burnt match"
|
||||
desc = "A match. This one has seen better days."
|
||||
attack_verb = null
|
||||
return ..()
|
||||
|
||||
//////////////////
|
||||
@@ -59,7 +66,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
item_state = "cigoff"
|
||||
w_class = 1
|
||||
body_parts_covered = null
|
||||
attack_verb = list("burnt", "singed")
|
||||
attack_verb = null
|
||||
var/lit = 0
|
||||
var/icon_on = "cigon" //Note - these are in masks.dmi not in cigarette.dmi
|
||||
var/icon_off = "cigoff"
|
||||
@@ -96,7 +103,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
else if(istype(W, /obj/item/weapon/match))
|
||||
var/obj/item/weapon/match/M = W
|
||||
if(M.lit)
|
||||
if(M.lit == 1) //checking for lit = 1 instead of just lit prevents cigarettes being lit by used matches
|
||||
light("<span class='notice'>[user] lights their [name] with [W].</span>")
|
||||
|
||||
else if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
@@ -134,7 +141,12 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/clothing/mask/cigarette/proc/light(var/flavor_text = "[usr] lights the [name].")
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
damtype = "fire"
|
||||
name = "lit [name]"
|
||||
if(!istype(src, /obj/item/clothing/mask/cigarette/pipe)) //can't burn people with pipes
|
||||
attack_verb = list("burnt", "singed")
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
damtype = "fire"
|
||||
force = 4
|
||||
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
|
||||
var/datum/effect/effect/system/reagents_explosion/e = new()
|
||||
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
|
||||
@@ -215,7 +227,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/clothing/mask/cigarette/attack(mob/living/carbon/M, mob/living/carbon/user)
|
||||
if(!istype(M))
|
||||
return ..()
|
||||
|
||||
if(istype(M.wear_mask, /obj/item/clothing/mask/cigarette) && user.zone_sel && user.zone_sel.selecting == "mouth" && lit)
|
||||
var/obj/item/clothing/mask/cigarette/cig = M.wear_mask
|
||||
if(M == user)
|
||||
@@ -403,7 +414,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
throwforce = 4
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
attack_verb = list("burnt", "singed")
|
||||
attack_verb = null
|
||||
var/lit = 0
|
||||
|
||||
/obj/item/weapon/lighter/zippo
|
||||
@@ -427,6 +438,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
lit = 1
|
||||
icon_state = icon_on
|
||||
item_state = icon_on
|
||||
force = 5
|
||||
damtype = "fire"
|
||||
hitsound = 'sound/items/welder.ogg'
|
||||
attack_verb = list("burnt", "singed")
|
||||
if(istype(src, /obj/item/weapon/lighter/zippo) )
|
||||
user.visible_message("<span class='rose'>Without even breaking stride, [user] flips open and lights [src] in one smooth movement.</span>")
|
||||
else
|
||||
@@ -443,6 +458,9 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
lit = 0
|
||||
icon_state = icon_off
|
||||
item_state = icon_off
|
||||
hitsound = "swing_hit"
|
||||
force = 0
|
||||
attack_verb = null //human_defense.dm takes care of it
|
||||
if(istype(src, /obj/item/weapon/lighter/zippo) )
|
||||
user.visible_message("<span class='rose'>You hear a quiet click, as [user] shuts off [src] without even looking at what they're doing. Wow.")
|
||||
else
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
timer = newtime
|
||||
user << "Timer set for [timer] seconds."
|
||||
|
||||
/obj/item/weapon/plastique/afterattack(atom/target as obj|turf, mob/user as mob, flag)
|
||||
if (!flag)
|
||||
/obj/item/weapon/plastique/preattack(atom/target as obj|turf, mob/user as mob,proximity_flag)
|
||||
if (!proximity_flag)
|
||||
return
|
||||
if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage/))
|
||||
return
|
||||
@@ -84,6 +84,7 @@
|
||||
user << "Bomb has been planted. Timer counting down from [timer]."
|
||||
spawn(timer*10)
|
||||
explode(get_turf(target))
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/plastique/proc/explode(var/location)
|
||||
|
||||
|
||||
@@ -30,9 +30,8 @@
|
||||
if(stage == READY && !active)
|
||||
var/turf/bombturf = get_turf(src)
|
||||
var/area/A = get_area(bombturf)
|
||||
var/log_str = "[key_name(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A> has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>."
|
||||
message_admins(log_str)
|
||||
log_game(log_str)
|
||||
message_admins("[key_name(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A> has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>.")
|
||||
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).")
|
||||
if(nadeassembly)
|
||||
nadeassembly.attack_self(user)
|
||||
else if(clown_check(user))
|
||||
@@ -92,8 +91,8 @@
|
||||
icon_state = initial(icon_state) + "_ass"
|
||||
user << "<span class='notice'>You add [A] to [src]!</span>"
|
||||
|
||||
else if(stage == EMPTY && istype(I, /obj/item/weapon/cable_coil))
|
||||
var/obj/item/weapon/cable_coil/C = I
|
||||
else if(stage == EMPTY && istype(I, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = I
|
||||
C.use(1)
|
||||
|
||||
stage = WIRED
|
||||
@@ -351,4 +350,4 @@
|
||||
|
||||
#undef EMPTY
|
||||
#undef WIRED
|
||||
#undef READY
|
||||
#undef READY
|
||||
|
||||
@@ -49,9 +49,9 @@
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/iedcasing/attackby(var/obj/item/I, mob/user as mob) //Wiring the can for ignition
|
||||
if(istype(I, /obj/item/weapon/cable_coil))
|
||||
if(istype(I, /obj/item/stack/cable_coil))
|
||||
if(assembled == 1)
|
||||
var/obj/item/weapon/cable_coil/C = I
|
||||
var/obj/item/stack/cable_coil/C = I
|
||||
C.use(1)
|
||||
assembled = 2
|
||||
user << "<span class='notice'>You wire the igniter to detonate the fuel.</span>"
|
||||
@@ -72,9 +72,9 @@
|
||||
add_fingerprint(user)
|
||||
var/turf/bombturf = get_turf(src)
|
||||
var/area/A = get_area(bombturf)
|
||||
var/log_str = "[key_name(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A> has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>."
|
||||
message_admins(log_str)
|
||||
log_game(log_str)
|
||||
|
||||
message_admins("[key_name(usr)]<A HREF='?_src_=holder;adminmoreinfo=\ref[usr]'>?</A> has primed a [name] for detonation at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[bombturf.x];Y=[bombturf.y];Z=[bombturf.z]'>[A.name] (JMP)</a>.")
|
||||
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]).")
|
||||
if(iscarbon(user))
|
||||
var/mob/living/carbon/C = user
|
||||
C.throw_mode_on()
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
flags = CONDUCT
|
||||
origin_tech = "materials=1"
|
||||
attack_verb = list("attacked", "stabbed", "poked")
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
|
||||
/obj/item/weapon/kitchen/utensil/New()
|
||||
if (prob(60))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/obj/item/weapon/melee/energy
|
||||
/obj/item/weapon/melee/energy/
|
||||
var/active = 0
|
||||
|
||||
/obj/item/weapon/melee/energy/suicide_act(mob/user)
|
||||
@@ -15,6 +15,7 @@
|
||||
icon_state = "axe0"
|
||||
force = 40.0
|
||||
throwforce = 25.0
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 3.0
|
||||
@@ -30,18 +31,18 @@
|
||||
active = !active
|
||||
if(active)
|
||||
user << "<span class='notice'>[src] is now energised.</span>"
|
||||
force = 150
|
||||
force = 150 //these are the drugs, friend
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
icon_state = "axe1"
|
||||
w_class = 5
|
||||
else
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
force = 40
|
||||
hitsound = 'sound/weapons/bladeslice.ogg'
|
||||
icon_state = "axe0"
|
||||
w_class = 5
|
||||
w_class = 3 //it goes back to three you goose
|
||||
add_fingerprint(user)
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/melee/energy/sword
|
||||
color
|
||||
name = "energy sword"
|
||||
@@ -49,12 +50,12 @@
|
||||
icon_state = "sword0"
|
||||
force = 3.0
|
||||
throwforce = 5.0
|
||||
hitsound = "swing_hit" //it starts deactivated
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 2.0
|
||||
flags = NOSHIELD
|
||||
origin_tech = "magnets=3;syndicate=4"
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
var/hacked = 0
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/New()
|
||||
@@ -73,27 +74,30 @@
|
||||
if (active)
|
||||
force = 30
|
||||
throwforce = 20
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
if(istype(src,/obj/item/weapon/melee/energy/sword/pirate))
|
||||
icon_state = "cutlass1"
|
||||
else
|
||||
icon_state = "sword[item_color]"
|
||||
w_class = 4
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
|
||||
user << "<span class='notice'>[src] is now active.</span>"
|
||||
else
|
||||
force = 3
|
||||
throwforce = 5.0
|
||||
hitsound = "swing_hit"
|
||||
attack_verb = null
|
||||
if(istype(src,/obj/item/weapon/melee/energy/sword/pirate))
|
||||
icon_state = "cutlass0"
|
||||
else
|
||||
icon_state = "sword0"
|
||||
w_class = 2
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1) //changed it from 50% volume to 35% because deafness
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/melee/energy/sword/attackby(obj/item/weapon/W, mob/living/user)
|
||||
..()
|
||||
if(istype(W, /obj/item/weapon/melee/energy/sword))
|
||||
@@ -160,6 +164,7 @@
|
||||
desc = "A concentrated beam of energy in the shape of a blade. Very stylish... and lethal."
|
||||
icon_state = "blade"
|
||||
force = 70.0//Normal attacks deal very high damage.
|
||||
hitsound = 'sound/weapons/blade1.ogg'
|
||||
throwforce = 1//Throwing or dropping the item deletes it.
|
||||
throw_speed = 1
|
||||
throw_range = 1
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
w_class = 3
|
||||
origin_tech = "combat=4"
|
||||
attack_verb = list("flogged", "whipped", "lashed", "disciplined")
|
||||
hitsound = 'sound/weapons/slash.ogg' //pls replace
|
||||
|
||||
/obj/item/weapon/melee/chainofcommand/suicide_act(mob/user)
|
||||
viewers(user) << "<span class='suicide'>[user] is strangling \himself with the [src.name]! It looks like \he's trying to commit suicide.</span>"
|
||||
@@ -40,9 +41,14 @@
|
||||
return
|
||||
add_logs(user, M, "attacked", object="[src.name]")
|
||||
|
||||
if(isrobot(M)) // Don't stun borgs, fix for issue #2436
|
||||
..()
|
||||
return
|
||||
if(!isliving(M)) // Don't stun nonhuman things
|
||||
return
|
||||
|
||||
if(user.a_intent == "harm")
|
||||
if(!..()) return
|
||||
playsound(loc, "swing_hit", 50, 1, -1)
|
||||
if(M.stuttering < 8 && !(HULK in M.mutations))
|
||||
M.stuttering = 8
|
||||
M.Stun(8)
|
||||
|
||||
@@ -66,14 +66,14 @@
|
||||
force = 10
|
||||
icon_state = "eshield[active]"
|
||||
w_class = 4
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberon.ogg', 35, 1)
|
||||
user << "<span class='notice'>[src] is now active.</span>"
|
||||
reflect_chance = 40
|
||||
else
|
||||
force = 3
|
||||
icon_state = "eshield[active]"
|
||||
w_class = 1
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
|
||||
playsound(user, 'sound/weapons/saberoff.ogg', 35, 1)
|
||||
user << "<span class='notice'>[src] can now be concealed.</span>"
|
||||
reflect_chance = 0
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
desc = "A backpack that opens into a localized pocket of Blue Space."
|
||||
origin_tech = "bluespace=4"
|
||||
icon_state = "holdingpack"
|
||||
max_w_class = 4
|
||||
max_combined_w_class = 28
|
||||
max_w_class = 5
|
||||
max_combined_w_class = 35
|
||||
|
||||
New()
|
||||
..()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
* Mining Satchel
|
||||
* Plant Bag
|
||||
* Sheet Snatcher
|
||||
* Book Bag
|
||||
*
|
||||
* -Sayu
|
||||
*/
|
||||
@@ -245,4 +246,21 @@
|
||||
/obj/item/weapon/storage/bag/sheetsnatcher/borg
|
||||
name = "sheet snatcher 9000"
|
||||
desc = ""
|
||||
capacity = 500//Borgs get more because >specialization
|
||||
capacity = 500//Borgs get more because >specialization
|
||||
|
||||
|
||||
// -----------------------------
|
||||
// Book bag
|
||||
// -----------------------------
|
||||
|
||||
/obj/item/weapon/storage/bag/books
|
||||
name = "book bag"
|
||||
desc = "A bag for books."
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "bookbag"
|
||||
display_contents_with_number = 0 //This would look really stupid otherwise
|
||||
storage_slots = 7
|
||||
max_combined_w_class = 21
|
||||
max_w_class = 3
|
||||
w_class = 4 //Bigger than a book because physics
|
||||
can_hold = list("/obj/item/weapon/book", "/obj/item/weapon/spellbook") //No bibles, consistent with bookcase
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
"/obj/item/weapon/wrench",
|
||||
"/obj/item/device/multitool",
|
||||
"/obj/item/device/flashlight",
|
||||
"/obj/item/weapon/cable_coil",
|
||||
"/obj/item/stack/cable_coil",
|
||||
"/obj/item/device/t_scanner",
|
||||
"/obj/item/device/analyzer")
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
new /obj/item/weapon/weldingtool(src)
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/weapon/cable_coil(src,30,pick("red","yellow","orange"))
|
||||
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/utility/atmostech/New()
|
||||
@@ -101,8 +101,11 @@
|
||||
desc = "Can hold security gear like handcuffs and flashes."
|
||||
icon_state = "securitybelt"
|
||||
item_state = "security"//Could likely use a better one.
|
||||
storage_slots = 4
|
||||
storage_slots = 5
|
||||
max_w_class = 3 //Because the baton wouldn't fit otherwise. - Neerti
|
||||
can_hold = list(
|
||||
"/obj/item/weapon/melee/baton",
|
||||
"/obj/item/weapon/melee/classic_baton",
|
||||
"/obj/item/weapon/grenade/flashbang",
|
||||
"/obj/item/weapon/reagent_containers/spray/pepper",
|
||||
"/obj/item/weapon/handcuffs",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user