diff --git a/maps/torch_fd/fd_torch.dm b/maps/torch_fd/fd_torch.dm index 798866a73c4d4..f2121491c0cd4 100644 --- a/maps/torch_fd/fd_torch.dm +++ b/maps/torch_fd/fd_torch.dm @@ -235,7 +235,7 @@ #include "../../mods/legalese_language/_legalese.dme" #include "../../mods/petting_zoo/_petting_zoo.dme" #include "../../mods/screentips/_screentips.dme" - #include "../../mods/tajara/_tajara.dme" +// #include "../../mods/tajara/_tajara.dme" #include "../../mods/sauna_props/_sauna_props.dme" #include "../../mods/wyccbay_optimization/_wyccbay_optimization.dme" @@ -256,6 +256,7 @@ #include "../../mods/_fd/ascent/_ascent.dme" #include "../../mods/_fd/backgrounds/_fd_backgrounds.dme" #include "../../mods/_fd/bruno_items/_bruno_items.dme" + #include "../../mods/_fd/chem_furniture/_furniture.dme" #include "../../mods/_fd/combat_stances/_combat_stances.dme" #include "../../mods/_fd/complementary_xeno_ablities/_complementary_xeno_ablities.dme" #include "../../mods/_fd/conference_holopads/_conference_holopads.dme" @@ -270,8 +271,8 @@ #include "../../mods/_fd/multitile_vehicles/_multitile_vehicles.dme" #include "../../mods/_fd/old_space_cannons/_old_space_cannons.dme" #include "../../mods/_fd/random_rooms/_random_rooms.dme" + #include "../../mods/_fd/small_holopad/_small_holopad.dme" #include "../../mods/_fd/structure_storage/_structure_storage.dme" - #include "../../mods/_fd/chem_furniture/_furniture.dme" #include "../../mods/_fd/_maps/airfield/_airfield.dme" #include "../../mods/_fd/_maps/ares/_ares.dme" diff --git a/maps/torch_fd/torch2_deck4.dmm b/maps/torch_fd/torch2_deck4.dmm index ab9248c1fb139..6ec5dd9b82df5 100644 --- a/maps/torch_fd/torch2_deck4.dmm +++ b/maps/torch_fd/torch2_deck4.dmm @@ -523,7 +523,7 @@ "kh" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/civilian{name = "Emergency Storage"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled/steel_ridged,/area/hallway/primary/fourthdeck/fore) "ki" = (/turf/unsimulated/mask,/area/hallway/primary/fourthdeck/center) "kj" = (/obj/structure/railing/mapped{dir = 4; icon_state = "railing0-1"},/obj/floor_decal/corner/black/mono,/obj/machinery/button/windowtint{id = "pathfinder_office"; pixel_x = -24; pixel_y = 6},/obj/machinery/light_switch{pixel_x = -24; pixel_y = -6},/turf/simulated/floor/tiled/dark/monotile,/area/command/pathfinder) -"kk" = (/obj/structure/table/standard,/obj/floor_decal/spline/fancy/wood{dir = 10},/turf/simulated/floor/wood/walnut,/area/command/pathfinder) +"kk" = (/obj/structure/table/standard,/obj/floor_decal/spline/fancy/wood{dir = 10},/obj/item/device/holopad,/turf/simulated/floor/wood/walnut,/area/command/pathfinder) "kl" = (/obj/structure/table/standard,/obj/floor_decal/spline/fancy/wood,/obj/item/modular_computer/tablet/lease/preset/command,/turf/simulated/floor/wood/walnut,/area/command/pathfinder) "km" = (/obj/structure/table/standard,/obj/floor_decal/spline/fancy/wood,/obj/random_multi/single_item/memo_exploration,/obj/item/flora/pottedplantsmall/leaf{pixel_x = 8},/turf/simulated/floor/wood/walnut,/area/command/pathfinder) "kn" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/tiled/techmaint,/area/quartermaster/hangar/top) @@ -1217,7 +1217,7 @@ "xz" = (/obj/structure/catwalk,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fourthdeck/foreport) "xA" = (/obj/structure/catwalk,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/maintenance/fourthdeck/foreport) "xB" = (/obj/structure/catwalk,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/mopbucket,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plating,/area/maintenance/fourthdeck/foreport) -"xC" = (/obj/floor_decal/techfloor,/obj/floor_decal/industrial/outline/yellow,/obj/structure/closet/secure_closet/deckofficer,/obj/item/device/destTagger,/obj/item/device/scanner/price,/turf/simulated/floor/tiled/techfloor/grid,/area/quartermaster/office) +"xC" = (/obj/floor_decal/techfloor,/obj/floor_decal/industrial/outline/yellow,/obj/structure/closet/secure_closet/deckofficer,/obj/item/device/destTagger,/obj/item/device/scanner/price,/obj/item/device/holopad,/turf/simulated/floor/tiled/techfloor/grid,/area/quartermaster/office) "xD" = (/obj/floor_decal/techfloor,/obj/floor_decal/industrial/outline/yellow,/obj/structure/closet/secure_closet/decktech,/obj/machinery/newscaster{pixel_y = 30},/obj/item/music_tape/custom,/obj/item/music_tape/custom,/obj/item/music_player/csplayer,/obj/item/device/destTagger,/obj/item/device/scanner/price,/turf/simulated/floor/tiled/techfloor/grid,/area/quartermaster/office) "xE" = (/obj/floor_decal/techfloor{dir = 6},/obj/floor_decal/industrial/outline/yellow,/obj/structure/closet/secure_closet/decktech,/obj/machinery/media/music_writer{pixel_y = 27},/obj/item/storage/pill_bottle/dice_nerd,/obj/item/device/destTagger,/obj/item/device/scanner/price,/turf/simulated/floor/tiled/techfloor/grid,/area/quartermaster/office) "xF" = (/obj/floor_decal/corner_steel_grid{dir = 9},/obj/structure/sign/warning/nosmoking_burned{pixel_x = -26},/obj/structure/closet/crate,/obj/machinery/light{dir = 1},/obj/item/stack/tile/carpetred/fifty,/obj/item/stack/tile/carpetpurple/fifty,/obj/item/stack/tile/carpetorange/fifty,/obj/item/stack/tile/carpetmagenta/fifty,/obj/item/stack/tile/carpetgreen/fifty,/obj/item/stack/tile/carpetblue3/fifty,/obj/item/stack/tile/carpetblue2/fifty,/obj/item/stack/tile/carpetblue/fifty,/obj/item/stack/tile/carpet/fifty,/turf/simulated/floor/tiled/techfloor/grid,/area/quartermaster/office) diff --git a/maps/torch_fd/torch6_bridge.dmm b/maps/torch_fd/torch6_bridge.dmm index 801bfeedeccda..f46634d5efdfb 100644 --- a/maps/torch_fd/torch6_bridge.dmm +++ b/maps/torch_fd/torch6_bridge.dmm @@ -190,7 +190,7 @@ "dI" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/firealarm{dir = 4; pixel_x = 21},/turf/simulated/floor/carpet,/area/crew_quarters/heads/office/xo) "dJ" = (/obj/floor_decal/corner/blue{dir = 9},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/obj/machinery/light{dir = 8; icon_state = "tube1"},/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/office/xo) "dK" = (/obj/structure/table/woodentable/walnut,/obj/random/clipboard,/obj/item/folder/blue,/obj/floor_decal/scglogo{dir = 8; icon_state = "center-left"},/turf/simulated/floor/carpet/blue,/area/bridge/meeting_room) -"dL" = (/obj/structure/closet/secure_closet/engineering_chief_torch,/obj/floor_decal/industrial/outline/yellow,/obj/item/material/twohanded/sledgehammer,/turf/simulated/floor/tiled/monotile,/area/crew_quarters/heads/office/ce) +"dL" = (/obj/structure/closet/secure_closet/engineering_chief_torch,/obj/floor_decal/industrial/outline/yellow,/obj/item/material/twohanded/sledgehammer,/obj/item/device/holopad,/turf/simulated/floor/tiled/monotile,/area/crew_quarters/heads/office/ce) "dM" = (/obj/machinery/power/apc{name = "south bump"; pixel_y = -24},/obj/structure/cable/green,/obj/floor_decal/industrial/warning{dir = 8; icon_state = "warning"},/turf/simulated/floor/tiled,/area/crew_quarters/heads/office/ce) "dN" = (/obj/machinery/camera/network/bridge{c_tag = "Chief Engineer - Office"; dir = 1; network = list("Command","Engineering")},/obj/machinery/button/alternate/door{desc = "A remote control-switch for the office door."; id_tag = "cedoor"; name = "CE's Office Door Control"; pixel_y = -27; req_access = list("ACCESS_CHIEF_ENGINEER")},/obj/floor_decal/industrial/outline/grey,/obj/machinery/light,/obj/machinery/papershredder,/turf/simulated/floor/tiled,/area/crew_quarters/heads/office/ce) "dO" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/floor_decal/corner/red/half,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/bridge/fore) @@ -498,14 +498,14 @@ "mE" = (/turf/simulated/wall/prepainted,/area/crew_quarters/heads/office/cos) "mG" = (/obj/machinery/papershredder,/obj/machinery/recharger/wallcharger{dir = 4; pixel_x = -23; pixel_y = -3},/obj/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/cos) "mH" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/photocopier,/obj/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/cos) -"mI" = (/obj/structure/closet/secure_closet/cos,/obj/floor_decal/industrial/outline/grey,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/bridge{c_tag = "Chief of Security - Office"; network = list("Command","Security")},/obj/machinery/button/alternate/door{desc = "A remote control-switch for the office door."; id_tag = "cosdoor"; name = "COS's Office Door Control"; pixel_y = 27; req_access = list("ACCESS_HEAD_OF_SECURITY")},/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/cos) +"mI" = (/obj/structure/closet/secure_closet/cos,/obj/floor_decal/industrial/outline/grey,/obj/machinery/light{dir = 1},/obj/machinery/camera/network/bridge{c_tag = "Chief of Security - Office"; network = list("Command","Security")},/obj/machinery/button/alternate/door{desc = "A remote control-switch for the office door."; id_tag = "cosdoor"; name = "COS's Office Door Control"; pixel_y = 27; req_access = list("ACCESS_HEAD_OF_SECURITY")},/obj/item/device/holopad,/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/cos) "mJ" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/floor_decal/corner/red/mono,/obj/machinery/newscaster/security_unit{pixel_y = 32},/obj/item/device/radio/intercom{dir = 8; pixel_x = 20},/obj/machinery/photocopier/faxmachine{department = "Torch - Chief of Security"},/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/cos) "mL" = (/obj/floor_decal/techfloor{dir = 8},/obj/floor_decal/borderfloorblack{dir = 4},/obj/floor_decal/corner/blue/border{dir = 4},/obj/machinery/computer/ship/helm{dir = 4; req_access = list(list("ACCESS_TORCH_HELM"))},/turf/simulated/floor/tiled/techfloor/grid,/area/bridge) "mN" = (/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/wallframe_spawn/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "bridge_checkpoint_shutters"; name = "Bridge Deck Checkpoint Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/security/bridgecheck) "mO" = (/obj/structure/sign/warning/high_voltage{dir = 4},/turf/simulated/wall/prepainted,/area/security/bridgecheck) "mQ" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/floor_decal/corner/blue,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/hallway/primary/bridge/fore) "mS" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled/monotile,/area/hallway/primary/bridge/aft) -"mT" = (/obj/structure/table/woodentable/walnut,/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/cobed) +"mT" = (/obj/structure/table/woodentable/walnut,/obj/item/device/holopad{pixel_y = 11},/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/cobed) "mU" = (/obj/landmark/start{name = "AI"},/obj/machinery/requests_console{department = "AI"; departmentType = 5; pixel_x = -32; pixel_y = -32},/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = -32},/obj/machinery/button/blast_door{desc = "A remote control-switch for the AI core maintenance door."; id_tag = "AICore"; name = "AI Core Shutter Control"; pixel_x = 24; pixel_y = 24},/obj/machinery/flasher{pixel_x = 24; pixel_y = 38},/obj/machinery/turretid/stun{check_synth = 1; name = "AI Chamber turret control"; pixel_x = -32; pixel_y = 32},/obj/item/device/radio/intercom/locked/ai_private{dir = 1; pixel_y = -22},/obj/item/device/radio/intercom{dir = 4; pixel_x = -21},/obj/item/device/radio/intercom/custom{pixel_y = 22},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/greengrid,/area/turret_protected/ai) "mV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/alarm{dir = 1; pixel_y = -28},/obj/floor_decal/corner/paleblue{dir = 10},/turf/simulated/floor/tiled,/area/hallway/primary/bridge/aft) "mW" = (/obj/machinery/camera/network/bridge{c_tag = "Bridge Hallway - Lift"; dir = 1},/obj/machinery/power/apc{name = "south bump"; pixel_y = -28},/obj/structure/cable/green,/obj/floor_decal/corner/blue/half,/turf/simulated/floor/tiled/monotile,/area/hallway/primary/bridge/aft) @@ -729,7 +729,7 @@ "tu" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/sgr) "tv" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/sgr) "tx" = (/obj/structure/bookcase,/obj/item/book/manual/solgov_law,/obj/item/book/manual/sol_sop,/obj/item/book/manual/military_law,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/item/device/radio/intercom{pixel_y = 23},/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/sgr) -"ty" = (/obj/structure/closet/secure_closet/representative,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/random/drinkbottle,/obj/structure/sign/warning/nosmoking_1{desc = "A warning sign which reads 'NO SMOKING'. Someone has scratched a variety of crude words in gutter across the entire sign."; pixel_y = 26},/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/sgr) +"ty" = (/obj/structure/closet/secure_closet/representative,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/random/drinkbottle,/obj/structure/sign/warning/nosmoking_1{desc = "A warning sign which reads 'NO SMOKING'. Someone has scratched a variety of crude words in gutter across the entire sign."; pixel_y = 26},/obj/item/device/holopad,/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/sgr) "tz" = (/obj/structure/table/woodentable/walnut,/obj/item/sticky_pad/random,/obj/item/device/flashlight/lamp/green,/obj/structure/noticeboard{pixel_x = 32},/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/sgr) "tC" = (/obj/floor_decal/corner/blue{dir = 5},/obj/machinery/hologram/holopad,/obj/floor_decal/industrial/outline/yellow,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled/dark,/area/bridge/disciplinary_board_room) "tH" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_y = 24},/obj/structure/catwalk,/turf/simulated/floor/plating,/area/maintenance/bridge/aftport) @@ -833,7 +833,7 @@ "ws" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "closed"; id_tag = "solar_bridge_outer"; locked = 1; name = "Engineering External Access"},/turf/simulated/floor/tiled/techfloor/grid,/area/maintenance/auxsolarbridge) "wt" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_bridge_airlock"; name = "exterior access button"; pixel_x = -24; pixel_y = 24; req_access = list("ACCESS_ENGINE_EQUIP","ACCESS_EXTERNAL")},/obj/floor_decal/industrial/hatch/yellow,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/airless,/area/solar/bridge) "wu" = (/obj/floor_decal/industrial/hatch/yellow,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/airless,/area/solar/bridge) -"ww" = (/obj/structure/closet/secure_closet/sea,/obj/floor_decal/corner/blue/mono,/obj/floor_decal/industrial/outline/grey,/obj/structure/noticeboard{pixel_x = -32},/obj/machinery/keycard_auth/torch{pixel_y = -24},/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/sea) +"ww" = (/obj/structure/closet/secure_closet/sea,/obj/floor_decal/corner/blue/mono,/obj/floor_decal/industrial/outline/grey,/obj/structure/noticeboard{pixel_x = -32},/obj/machinery/keycard_auth/torch{pixel_y = -24},/obj/item/device/holopad,/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/sea) "wx" = (/obj/structure/table/standard{name = "plastic table frame"},/obj/floor_decal/corner/blue/mono,/obj/item/toy/bosunwhistle,/obj/item/sticky_pad/random,/obj/machinery/newscaster/security_unit{pixel_x = 32},/obj/machinery/light,/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/sea) "wz" = (/obj/random/maintenance/solgov,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/tiled/techfloor/grid,/area/crew_quarters/safe_room/bridge) "wA" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/obj/machinery/meter,/turf/simulated/floor/tiled/techfloor/grid,/area/crew_quarters/safe_room/bridge) @@ -918,7 +918,7 @@ "yV" = (/obj/random/closet,/obj/floor_decal/industrial/outline/grey,/obj/random/maintenance/solgov/clean,/obj/random/maintenance/solgov/clean,/turf/simulated/floor/tiled/techfloor,/area/maintenance/bridge/aftstarboard) "yW" = (/turf/simulated/wall/prepainted,/area/security/bridgecheck) "yX" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/camera/all/command{c_tag = "AI Core - Aft Port"; dir = 8},/obj/item/device/radio/intercom/locked/ai_private{dir = 1; pixel_y = -22},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_foyer) -"za" = (/obj/structure/closet/secure_closet/XO,/obj/random/drinkbottle,/turf/simulated/floor/carpet,/area/crew_quarters/heads/office/xo) +"za" = (/obj/structure/closet/secure_closet/XO,/obj/random/drinkbottle,/obj/item/device/holopad,/turf/simulated/floor/carpet,/area/crew_quarters/heads/office/xo) "zb" = (/obj/shuttle_landmark/merc/deck1{name = "B-Deck, Aft"},/turf/space,/area/space) "zc" = (/obj/structure/catwalk,/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor/plating,/area/aquila/maintenance) "zf" = (/obj/structure/bed/chair/comfy/blue{dir = 4},/obj/floor_decal/scglogo{dir = 8; icon_state = "bottom-left"},/turf/simulated/floor/carpet/blue,/area/bridge/meeting_room) @@ -1024,7 +1024,7 @@ "Dc" = (/obj/machinery/light/small,/obj/structure/catwalk,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/aquila/maintenance) "De" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/floor_decal/corner/blue/border{dir = 4},/obj/floor_decal/corner/blue/border{dir = 8},/turf/simulated/floor/tiled/techfloor,/area/bridge/storage) "Dg" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/cl) -"Dh" = (/obj/structure/table/woodentable_reinforced/walnut,/obj/random_multi/single_item/memo_corporate{pixel_y = 10},/turf/simulated/floor/carpet/green,/area/crew_quarters/heads/office/cl) +"Dh" = (/obj/structure/table/woodentable_reinforced/walnut,/obj/random_multi/single_item/memo_corporate{pixel_y = 10},/obj/item/device/holopad{pixel_y = -2; pixel_x = -14},/turf/simulated/floor/carpet/green,/area/crew_quarters/heads/office/cl) "Di" = (/obj/structure/catwalk,/obj/structure/ladder,/turf/space,/area/space) "Dj" = (/obj/structure/bed/chair/comfy/green,/turf/simulated/floor/carpet,/area/crew_quarters/heads/office/cl/backroom) "Dq" = (/obj/floor_decal/industrial/outline/grey,/obj/structure/table/rack{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/floor_decal/corner/blue/diagonal,/obj/floor_decal/corner/blue/diagonal{dir = 4},/obj/item/tank/oxygen_emergency_double,/obj/item/rig/command/xo/equipped,/obj/machinery/door/window/brigdoor/westright{autoset_access = 0; name = "XO's suit storage"; req_access = list("ACCESS_HEAD_OF_PERSONNEL")},/turf/simulated/floor/tiled/dark,/area/aux_eva) @@ -1196,7 +1196,7 @@ "Kb" = (/obj/structure/sign/warning/high_voltage{pixel_y = -6},/turf/simulated/wall/prepainted,/area/crew_quarters/heads/office/rd) "Kc" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/paint/hull,/turf/simulated/wall/titanium,/area/aquila/airlock) "Ke" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/floor_decal/corner/blue/border{dir = 8},/obj/floor_decal/corner/blue/border{dir = 4},/turf/simulated/floor/tiled/techfloor,/area/bridge/storage) -"Kf" = (/obj/structure/table/glass,/obj/random_multi/single_item/memo_medical,/obj/floor_decal/corner/paleblue/bordercorner{dir = 8},/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/office/cmo) +"Kf" = (/obj/structure/table/glass,/obj/random_multi/single_item/memo_medical,/obj/floor_decal/corner/paleblue/bordercorner{dir = 8},/obj/item/device/holopad,/turf/simulated/floor/tiled/white,/area/crew_quarters/heads/office/cmo) "Kh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table/woodentable_reinforced/walnut/maple,/obj/machinery/keycard_auth/torch{pixel_x = 26},/obj/item/storage/fancy/matches/matchbox,/obj/random/smokes,/turf/simulated/floor/wood/walnut,/area/crew_quarters/heads/office/co) "Kj" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/dark,/area/crew_quarters/heads/office/rd) "Kl" = (/obj/machinery/computer/modular/preset/medical{dir = 4},/obj/floor_decal/techfloor{dir = 10},/obj/floor_decal/corner/blue/bordercorner{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/tiled/techfloor,/area/bridge) @@ -1256,7 +1256,7 @@ "Mw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/floor_decal/borderfloorblack{dir = 8},/obj/floor_decal/corner/blue/border{dir = 8},/obj/floor_decal/techfloor{dir = 4},/obj/structure/table/standard{name = "plastic table frame"},/turf/simulated/floor/tiled/techfloor,/area/aquila/mess) "Mz" = (/obj/machinery/status_display,/turf/simulated/wall/r_wall/hull,/area/crew_quarters/heads/office/co) "MA" = (/turf/simulated/floor/carpet/blue,/area/crew_quarters/heads/cobed) -"MD" = (/obj/structure/closet/secure_closet/RD_torch,/obj/floor_decal/corner/research/mono,/obj/machinery/alarm{dir = 8; pixel_x = 24},/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/rd) +"MD" = (/obj/structure/closet/secure_closet/RD_torch,/obj/floor_decal/corner/research/mono,/obj/machinery/alarm{dir = 8; pixel_x = 24},/obj/item/device/holopad,/turf/simulated/floor/tiled/dark/monotile,/area/crew_quarters/heads/office/rd) "MN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/floor_decal/corner/blue/bordercorner{dir = 8},/obj/floor_decal/corner/blue/bordercorner,/turf/simulated/floor/tiled/techfloor,/area/bridge/storage) "MS" = (/obj/structure/catwalk,/obj/structure/railing/mapped,/obj/structure/handrail,/turf/space,/area/space) "MU" = (/obj/machinery/light{dir = 4},/obj/floor_decal/techfloor{dir = 4},/obj/floor_decal/techfloor{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/aquila/airlock) diff --git a/mods/_fd/fd_assets/code/weapons/rsh21.dm b/mods/_fd/fd_assets/code/weapons/rsh21.dm index 6838511d6695c..75e353f2474ab 100644 --- a/mods/_fd/fd_assets/code/weapons/rsh21.dm +++ b/mods/_fd/fd_assets/code/weapons/rsh21.dm @@ -3,6 +3,7 @@ /obj/item/gun/projectile/revolver/rsh21 name = "RSH-21" icon_state = "rsh12" + icon = 'mods/_fd/fd_assets/icons/obj/items/rsh21.dmi' caliber = CALIBER_RIFLE_RUSSIA ammo_type = /obj/item/ammo_casing/rifle/russia desc = "A modern assault revolver that has been adapted for firing at medium and long distances. The RS12 is its direct predecessor, but in comparison with it it has a lower recoil, a larger drum for 6 rounds, and a built-in gyro stabilizer. It has two mounting straps on the bottom and top." diff --git a/mods/_fd/fd_assets/icons/obj/items/rsh21.dmi b/mods/_fd/fd_assets/icons/obj/items/rsh21.dmi new file mode 100644 index 0000000000000..a38ea60f35c31 Binary files /dev/null and b/mods/_fd/fd_assets/icons/obj/items/rsh21.dmi differ diff --git a/mods/_fd/small_holopad/README.md b/mods/_fd/small_holopad/README.md new file mode 100644 index 0000000000000..da9a20e12b45e --- /dev/null +++ b/mods/_fd/small_holopad/README.md @@ -0,0 +1,80 @@ + +#### Список PRов: + +- + + + +## Мод-пример + +ID мода: TINY_HOLOPAD + + +### Описание мода + +N/A + + +### Изменения *кор кода* + +- Отсутствуют + + +### Оверрайды + +- `code/holopad_override.dm:` +- - `/obj/machinery/hologram/holopad/bullet_act` + + + +### Дефайны + +- Отсутствуют + + +### Используемые файлы, не содержащиеся в модпаке + +- `mods/_fd/fd_assets/icons/obj/items/stock_parts.dmi` + + +### Авторы: + +Danilcus () +Портировал: ChaplanMaximum + diff --git a/mods/_fd/small_holopad/_small_holopad.dm b/mods/_fd/small_holopad/_small_holopad.dm new file mode 100644 index 0000000000000..40a63185f1d66 --- /dev/null +++ b/mods/_fd/small_holopad/_small_holopad.dm @@ -0,0 +1,4 @@ +/singleton/modpack/small_holopad + name = "Ручные Голопады" + desc = "Мод добавляет ручные голопады, позволяя их использовать командному составу, а так же позволяет СТРЕЛЯТЬ ПО ГОЛОПАДУ, дабы отключить его." + author = "ChaplanMaximum" diff --git a/mods/_fd/small_holopad/_small_holopad.dme b/mods/_fd/small_holopad/_small_holopad.dme new file mode 100644 index 0000000000000..6e051b6f21a3d --- /dev/null +++ b/mods/_fd/small_holopad/_small_holopad.dme @@ -0,0 +1,11 @@ +#ifndef MODPACK_SMALL_HOLOPAD +#define MODPACK_SMALL_HOLOPAD + +#include "_small_holopad.dm" + +#include "code/holopad.dm" +#include "code/holopad_override.dm" +// Далее просто включай свой код +// #include "code/something.dm" + +#endif diff --git a/mods/_fd/small_holopad/code/holopad.dm b/mods/_fd/small_holopad/code/holopad.dm new file mode 100644 index 0000000000000..58fbd75628488 --- /dev/null +++ b/mods/_fd/small_holopad/code/holopad.dm @@ -0,0 +1,270 @@ +#define CALL_NONE 0 +#define CALL_CALLING 1 +#define CALL_RINGING 2 +#define CALL_IN_CALL 3 + +/obj/item/device/holopad + name = "Holopad" + desc = "Small handheld disk with controls." + icon = 'mods/_fd/fd_assets/icons/obj/items/stock_parts.dmi' + icon_state = "holopad" + item_state = "card-id" + w_class = ITEM_SIZE_TINY + var/voice + var/id + var/uniq_id + var/obj/item/device/holopad/abonent = null + var/call_state = CALL_NONE + var/obj/overlay/hologram = null + var/updatingPos = 0 + var/hologram_color = HOLOPAD_SHORT_RANGE + origin_tech = list(TECH_DATA = 4, TECH_MAGNET = 4) + +/obj/item/device/holopad/Initialize() + uniq_id = random_id("holopad_device", 00000, 99999) + id = generate_planet_name() // Выглядит чуток получше + // Было rand(1000, 9999) + name = "[initial(name)] [id] #[uniq_id]" + voice = "Holopad [id]" + GLOB.listening_objects += src + . = ..() + +/obj/item/device/holopad/Destroy() + GLOB.listening_objects -= src + hangUp() + . = ..() + + +/obj/item/device/holopad/verb/setID() + set name="Set ID" + set category = "Object" + set src in usr + if(call_state != CALL_NONE) + to_chat(usr, SPAN_WARNING("Нельзя сменить ID прямо сейчас.")) + return + var/newid = sanitize(input(usr, "Укажите ID голопада!") as null|text, MAX_NAME_LEN) + if(newid && CanPhysicallyInteract(usr)) + id = newid + name = "[initial(name)] [id] #[uniq_id]" + +/obj/item/device/holopad/proc/getName(override_busy = 0) + if(call_state!=CALL_NONE && !override_busy) + return "Holopad [id] #[uniq_id] - busy" + else + return "Holopad [id] #[uniq_id]" + +/obj/item/device/holopad/proc/incall(obj/item/device/holopad/caller) + if(call_state != CALL_NONE) + return FALSE + abonent = caller + call_state = CALL_RINGING + icon_state = "holopad_ringing" + desc = "[initial(desc)]" + SPAN_NOTICE("
Входящий вызов - [caller.getName()].") + invoke_async(src, .proc/ring) + return TRUE + +/obj/item/device/holopad/proc/ring() + if(call_state != CALL_RINGING) + return + audible_message(SPAN_WARNING("Что-то жужжит..."), hearing_distance = 4) + addtimer(new Callback(src, .proc/ring), 50) + +/obj/item/device/holopad/proc/placeCall(mob/user) + var/list/Targets = list() + var/list/valid_z = GetConnectedZlevels(loc.z) + var/our_ship = map_sectors["[loc.z]"] + for(var/obj/overmap/visitable/ship in range(our_ship, 5)) + if(ship != our_ship) + valid_z += ship.map_z + for(var/obj/item/device/holopad/H in GLOB.listening_objects) + if( H == src || (!(H.loc.z in valid_z) && !(H.loc.loc?.z in valid_z)) ) + continue + Targets[H.getName()] = H + var/selection = input("Кого вы хотите вызвать?") as null|anything in Targets + if(!selection) + return + var/obj/item/device/holopad/target = Targets[selection] + if(!target) + return + if(target.incall(src)) + call_state = CALL_CALLING + abonent = target + icon_state = "holopad_calling" + desc = "[initial(desc)]" + SPAN_NOTICE("
Устанавливается соединение - [abonent.getName()].") + audible_message("[voice] передаёт, \"Запрос на подключение: [sanitize(abonent.getName(1))].\"", hearing_distance = 4) + else + desc = initial(desc) + audible_message("[voice] передаёт, \"Соединение разорвано.\"", hearing_distance = 4) + +/obj/item/device/holopad/proc/acceptCall() + if(call_state == CALL_RINGING) + var/confirm = alert(usr, "Ответить на звонок?", "Входящий вызов - [abonent.id]", "Да", "Нет") + if(isnull(confirm) || !CanDefaultInteract(usr)) + return TRUE + if(abonent && abonent.call_state == CALL_CALLING && confirm == "Да") + abonent.acceptCall() + call_state = CALL_IN_CALL + icon_state = "holopad_in_call" + addtimer(new Callback(src, .proc/update_holo), 1) + playsound(src.loc, 'mods/_fd/small_holopad/sounds/holopad_boot.ogg', 75, 1) + audible_message("[voice] передаёт, \"Соединение установлено.\"", hearing_distance = 4) + desc = "[initial(desc)]" + SPAN_NOTICE("
Связь - [abonent.getName()].") + else + icon_state = initial(icon_state) + desc = initial(desc) + abonent.hangUp() + + else if(call_state == CALL_CALLING) + call_state = CALL_IN_CALL + icon_state = "holopad_in_call" + addtimer(new Callback(src, .proc/update_holo), 1) + playsound(src.loc, 'mods/_fd/small_holopad/sounds/holopad_boot.ogg', 75, 1) + audible_message("[voice] передаёт, \"Соединение установлено.\"", hearing_distance = 4) + desc = "[initial(desc)]" + SPAN_NOTICE("
Связь - [abonent.getName()].") + +/obj/item/device/holopad/proc/hangUp(remote = 0) + if(!remote && abonent) + abonent.hangUp(1) + + if(call_state==CALL_NONE) + return + + audible_message("[voice] передаёт, \"Соединение разорвано.\"", hearing_distance = 4) + call_state = CALL_NONE + icon_state = initial(icon_state) + desc = initial(desc) + QDEL_NULL(hologram) + if(abonent) + if(abonent.hologram) + QDEL_NULL(abonent.hologram) + abonent = null + +/obj/item/device/holopad/forceMove() + ..() + update_holo() + +/mob/living/carbon/update_icon() + ..() + for(var/obj/item/device/holopad/pad in src) + pad.update_holo() + +/obj/item/device/holopad/proc/update_holo() + if(!abonent) + return + if(call_state == CALL_IN_CALL) + if(!abonent.hologram) + abonent.hologram = new() + abonent.hologram.anchored = 1 + abonent.hologram.layer = 5 + if(isliving(loc)) + abonent.hologram.name = "[abonent.loc.name] Hologram" + abonent.hologram.icon = getHologramIcon(getFullIcon(loc), hologram_color = hologram_color) + else + QDEL_NULL(abonent.hologram) + if(!abonent.updatingPos) + abonent.update_holo_pos() + +/obj/item/device/holopad/proc/update_holo_pos() + if(call_state != CALL_IN_CALL || !hologram) + updatingPos = 0 + return + updatingPos = 1 + if(isliving(loc)) + var/mob/living/L = loc + hologram.dir = turn(L.dir,180) + hologram.loc = L.loc + hologram.pixel_x = ((L.dir&4)?32:((L.dir&8)?-32:0)) + hologram.pixel_y = ((L.dir&1)?32:((L.dir&2)?-32:0)) + else if(isturf(loc)) + hologram.dir = abonent.loc.dir + hologram.loc = loc + hologram.pixel_x = pixel_x + 1 + hologram.pixel_y = pixel_y + pixel_z + 18 + else + hangUp() + addtimer(new Callback(src, .proc/update_holo_pos), 2) + + +/obj/item/device/holopad/attack_self(mob/user) + switch(call_state) + if(CALL_NONE) + placeCall() + if(CALL_CALLING) + hangUp() + if(CALL_RINGING) + acceptCall() + if(CALL_IN_CALL) + hangUp() + + +//EMOTES & SPEECH STUFF// + +/obj/item/device/holopad/hear_talk(mob/living/M, text, verb, datum/language/speaking) + if(abonent && call_state == CALL_IN_CALL) + abonent.broadcast_message(M, text, verb, speaking) + for(var/obj/item/device/holopad/holopads_around in view(abonent)) + if(isnull(abonent) || holopads_around == src) + continue + if(holopads_around.abonent && holopads_around.abonent != src) + holopads_around.abonent.broadcast_message(M, text, verb, speaking) + +//Leaving this here, but as far as I can see, nowhere actually calls this proc??? +/obj/item/device/holopad/see_emote(mob/living/M, text) + if(abonent) + abonent.visible_message("[text]") + +/obj/item/device/holopad/show_message(msg, type, alt, alt_type) + var/rendered + if(abonent && call_state == CALL_IN_CALL) + var/mob/master = abonent.loc + if(istype(master)) + if(findtext(msg, master.name)) + rendered = "The holographic image of [msg]" + if(type == AUDIBLE_MESSAGE && !rendered) //Or what the holopad can hear + rendered = "Holopad received, [msg]" + if(rendered) + for(var/mob/living/mobs in view(abonent)) +// if(mobs == caller_id) +// continue + mobs.show_message(rendered, type) + +/obj/item/device/holopad/proc/get_hear_message(name_used, text, verb, datum/language/speaking) + if(speaking) + return "Holopad received, [name_used] [speaking.format_message(text, verb)]" + return "Holopad received, [name_used] [verb], \"[text]\"" + +//Because the holopads can't 'speak', this is used to preserve languages on the other side. +//This is essentially atom.audible_message() except with language taken into account +/obj/item/device/holopad/proc/broadcast_message(mob/living/M, text, verb, datum/language/speaking) + var/turf/T = get_turf(src) + var/list/mobs = list() + var/list/objs = list() + get_mobs_and_objs_in_view_fast(T, 5, mobs, objs) + + var/used_name = M.GetVoice() + var/understood = get_hear_message(used_name, text, verb, speaking) + var/gibberish = get_hear_message(used_name, speaking ? speaking.scramble(text) : stars(text), verb, speaking) + + for(var/mob/hearer in mobs) + hearer.show_message(hearer.say_understands(M, speaking) ? understood : gibberish,2,null,1) + + for(var/obj/O in objs) + if(O != src) //Prevents echoes + O.show_message(understood,2,null,1) + + +/* +/obj/item/device/holopad/cheap + name = "Holopda" + desc = "New brand pda, now with holo-link and built-in clock!" + icon = 'icons/bos/obj/holopda.dmi' + w_class = ITEM_SIZE_SMALL + +/obj/item/device/holopad/cheap/examine(mob/user) + . = ..() + to_chat(user, "\the [src] displays [stationtime2text()].") +*/ +#undef CALL_NONE +#undef CALL_CALLING +#undef CALL_RINGING +#undef CALL_IN_CALL diff --git a/mods/_fd/small_holopad/code/holopad_override.dm b/mods/_fd/small_holopad/code/holopad_override.dm new file mode 100644 index 0000000000000..0f0de5fdf2abe --- /dev/null +++ b/mods/_fd/small_holopad/code/holopad_override.dm @@ -0,0 +1,7 @@ +/obj/machinery/hologram/holopad/bullet_act(obj/item/projectile/P) + ..() + for(var/mob/M in masters) + remove_holo(M) + if(connected) + end_call() + visible_message("Holopad shuts down as \the [P] hits it!") diff --git a/mods/_fd/small_holopad/sounds/holopad_boot.ogg b/mods/_fd/small_holopad/sounds/holopad_boot.ogg new file mode 100644 index 0000000000000..a8eb8a5dcc197 Binary files /dev/null and b/mods/_fd/small_holopad/sounds/holopad_boot.ogg differ