From ec837b6213c16ec9cebf816ad0c3c1f6db9475b1 Mon Sep 17 00:00:00 2001 From: GREG <100868342+GREG-MAP@users.noreply.github.com> Date: Wed, 15 Nov 2023 01:39:34 +0500 Subject: [PATCH] Feat: Delta SM Space Drop (#685) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Что этот PR делает 1. Добавляет механику сброса СМ в космос, а именно под солярами на край карты при взрыве которого он даже их не задевает. Так же добавляет кнопку сброса и инструкцию по ее использованию. 2. Переделка зоны содержания СМ и прибытия под систему сброса. ## Почему это хорошо для игры Позволяет в критической ситуации, а именно когда целостность СМ доходит до 10 или менее процентов, сбросить его в космос да бы не разносить весь атмос и не ебать с ним голову остаток раунда инженерам. Тем более большинство Капитанов после взрыва СМ сразу вызывают шатл хотя при взрыве СМ спокойно можно продолжать раунд. ## Изображения изменений ![image](https://github.com/ss220club/Paradise-SS220/assets/100868342/d9e2cfe6-b0b1-4c31-b9cb-08a633ddcc3c) ![2023-11-14 18 23 31](https://github.com/ss220club/Paradise-SS220/assets/100868342/6e858fd1-8166-4a61-a529-6e71f40dc923) https://github.com/ss220club/Paradise-SS220/assets/100868342/89648046-19e7-45e7-a8ef-d4660b7dba67 https://github.com/ss220club/Paradise-SS220/assets/100868342/d84b8622-c032-4029-82c7-dcb8b3fe61f5 ## Тестирование Сотню раз запускал на локалке и тестил все начиная от пути запуска до взрыва ## Changelog :cl: add: Систему сброса СМ imageadd: Иконка кнопки сброса СМ /:cl: --------- Co-authored-by: Aylong --- _maps/map_files220/delta/delta.dmm | 637 +++++++++--------- modular_ss220/modular_ss220.dme | 1 + .../sm_space_drop/code/paper_sm_info.dm | 23 + .../sm_space_drop/code/sm_button_NEW.dm | 97 +++ .../sm_space_drop/code/sm_mass_driver.dm | 14 + .../sm_space_drop/code/sm_space_drop.dm | 4 + .../sm_space_drop/icons/sm_buttons.dmi | Bin 0 -> 583 bytes modular_ss220/sm_space_drop/sm_space_drop.dm | 4 + modular_ss220/sm_space_drop/sm_space_drop.dme | 6 + modular_ss220/sm_space_drop/sound/button.ogg | Bin 0 -> 7048 bytes modular_ss220/sm_space_drop/sound/button1.ogg | Bin 0 -> 5377 bytes modular_ss220/sm_space_drop/sound/button2.ogg | Bin 0 -> 5363 bytes modular_ss220/sm_space_drop/sound/button3.ogg | Bin 0 -> 5381 bytes modular_ss220/sm_space_drop/sound/button4.ogg | Bin 0 -> 5118 bytes 14 files changed, 472 insertions(+), 314 deletions(-) create mode 100644 modular_ss220/sm_space_drop/code/paper_sm_info.dm create mode 100644 modular_ss220/sm_space_drop/code/sm_button_NEW.dm create mode 100644 modular_ss220/sm_space_drop/code/sm_mass_driver.dm create mode 100644 modular_ss220/sm_space_drop/code/sm_space_drop.dm create mode 100644 modular_ss220/sm_space_drop/icons/sm_buttons.dmi create mode 100644 modular_ss220/sm_space_drop/sm_space_drop.dm create mode 100644 modular_ss220/sm_space_drop/sm_space_drop.dme create mode 100644 modular_ss220/sm_space_drop/sound/button.ogg create mode 100644 modular_ss220/sm_space_drop/sound/button1.ogg create mode 100644 modular_ss220/sm_space_drop/sound/button2.ogg create mode 100644 modular_ss220/sm_space_drop/sound/button3.ogg create mode 100644 modular_ss220/sm_space_drop/sound/button4.ogg diff --git a/_maps/map_files220/delta/delta.dmm b/_maps/map_files220/delta/delta.dmm index 925c2168135a..5ab8f43392be 100644 --- a/_maps/map_files220/delta/delta.dmm +++ b/_maps/map_files220/delta/delta.dmm @@ -1082,11 +1082,18 @@ /turf/simulated/floor/mineral/titanium/blue, /area/shuttle/arrival/station) "aik" = ( -/obj/machinery/light/directional/north, -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/delivery, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 8 + }, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/reflector/single{ + dir = 4; + anchored = 1 + }, +/turf/simulated/floor/engine, +/area/station/engineering/engine/supermatter) "ail" = ( /obj/structure/chair/comfy/shuttle{ dir = 4 @@ -4583,12 +4590,12 @@ /turf/simulated/floor/plasteel, /area/station/engineering/controlroom) "axP" = ( -/obj/structure/sign/electricshock{ - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, +/obj/structure/sign/electricshock{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 4; icon_state = "caution" @@ -4598,15 +4605,15 @@ /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, +/obj/structure/sign/nosmoking_2{ + pixel_y = -32 + }, /turf/simulated/floor/plasteel{ dir = 8; icon_state = "caution" }, /area/station/engineering/controlroom) "axS" = ( -/obj/structure/sign/nosmoking_2{ - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/visible{ dir = 4 }, @@ -5207,10 +5214,10 @@ /area/station/engineering/engine/supermatter) "aAd" = ( /obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + d2 = 4; + icon_state = "0-4" }, +/obj/machinery/power/rad_collector, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "aAe" = ( @@ -5572,7 +5579,10 @@ /turf/space, /area/space/nearstation) "aBX" = ( -/obj/machinery/atmospherics/supermatter_crystal, +/obj/machinery/mass_driver/sm_mass_driver{ + dir = 1 + }, +/obj/machinery/atmospherics/supermatter_crystal/engine, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "aBY" = ( @@ -20244,15 +20254,34 @@ /area/station/command/office/ce) "bMi" = ( /obj/structure/table/reinforced, -/obj/item/paper_bin/nanotrasen, -/obj/item/pen/multi, +/obj/item/paper_bin/nanotrasen{ + pixel_x = -7 + }, +/obj/item/pen/multi{ + pixel_y = 10; + pixel_x = -7 + }, +/obj/item/stamp/ce{ + pixel_x = 7; + pixel_y = 7 + }, +/obj/item/folder/blue{ + pixel_x = 7; + pixel_y = -2 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, /area/station/command/office/ce) "bMj" = ( /obj/structure/table/reinforced, -/obj/item/flashlight/lamp, +/obj/item/flashlight/lamp{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/item/paper/tcommskey{ + pixel_x = 7 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -21380,9 +21409,6 @@ /area/station/supply/office) "bQd" = ( /obj/structure/table/reinforced, -/obj/item/folder/blue, -/obj/item/stamp/ce, -/obj/item/paper/tcommskey, /obj/structure/cable{ d1 = 2; d2 = 4; @@ -21400,6 +21426,9 @@ pixel_x = -5; req_access_txt = "56" }, +/obj/item/paper/sm_paper{ + pixel_y = 3 + }, /turf/simulated/floor/plasteel{ icon_state = "neutralfull" }, @@ -29061,7 +29090,6 @@ /area/station/maintenance/dormitory_maintenance) "cuJ" = ( /obj/docking_port/stationary{ - dir = 8; dwidth = 3; height = 5; id = "sst_home"; @@ -47566,7 +47594,6 @@ }, /area/station/medical/medbay2) "eCj" = ( -/obj/machinery/status_display/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -54323,10 +54350,14 @@ /turf/simulated/floor/plating, /area/station/maintenance/starboard2) "gWk" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/recharge_station, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reflector/single, +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "gWl" = ( /obj/machinery/camera{ c_tag = "Theatre West"; @@ -56294,6 +56325,9 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/turf_decal/delivery/hollow, +/obj/machinery/power/emitter{ + dir = 1 + }, /turf/simulated/floor/engine, /area/station/engineering/controlroom) "hGN" = ( @@ -60274,8 +60308,16 @@ }, /area/station/engineering/break_room) "iWM" = ( -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/reflector/single{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "iWV" = ( /obj/effect/spawner/lootdrop/trash, /obj/structure/sign/poster/official/random/north, @@ -60832,12 +60874,14 @@ /turf/simulated/floor/plasteel/dark, /area/station/security/warden) "jhz" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/atmospherics/pipe/manifold/hidden{ dir = 4 }, -/obj/machinery/economy/atm/east, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/station/engineering/engine/supermatter) "jhD" = ( /obj/machinery/computer/security{ dir = 1 @@ -65476,10 +65520,14 @@ /turf/simulated/floor/wood/oak, /area/station/maintenance/library) "kJd" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/directional/south, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/machinery/door/poddoor{ + id_tag = "SpaceDropSM"; + protected = 0; + name = "SM Drop Door" + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/plating, +/area/station/engineering/engine/supermatter) "kJV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -69608,6 +69656,14 @@ icon_state = "hydrofloor" }, /area/station/public/toilet) +"mgh" = ( +/obj/machinery/power/rad_collector, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/engine, +/area/station/engineering/engine/supermatter) "mgl" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -70525,18 +70581,13 @@ }, /area/station/security/brig) "mxG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/item/kirbyplants, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 +/obj/machinery/atmospherics/binary/valve/digital, +/obj/machinery/driver_button/sm_drop_button{ + range = 20; + pixel_x = 32 }, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/turf/simulated/floor/engine, +/area/station/engineering/engine/supermatter) "myf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -71537,6 +71588,9 @@ /area/station/medical/reception) "mTu" = ( /obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "mTw" = ( @@ -72116,12 +72170,16 @@ /turf/simulated/floor/carpet, /area/station/medical/psych) "ndW" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; - name = "KEEP CLEAR: DOCKING AREA" +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" }, -/turf/simulated/wall, -/area/station/hallway/secondary/entry) +/obj/effect/turf_decal/delivery/hollow, +/obj/machinery/power/emitter{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "neI" = ( /obj/machinery/door/airlock/medical/glass{ name = "Patients Room" @@ -74824,26 +74882,8 @@ /turf/simulated/floor/carpet, /area/station/service/bar/atrium) "nUR" = ( -/obj/machinery/camera{ - c_tag = "Supermatter North"; - network = list("SS13","Engineering") - }, -/obj/structure/reflector/box, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/delivery, -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/effect/turf_decal/arrows{ + dir = 1 }, /turf/simulated/floor/engine, /area/station/engineering/controlroom) @@ -75848,15 +75888,14 @@ /turf/simulated/wall/r_wall, /area/station/medical/storage/secondary) "onA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/chair, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 +/obj/machinery/door/poddoor{ + id_tag = "SpaceDropSM"; + protected = 0; + name = "SM Drop Door" }, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/structure/fans/tiny, +/turf/simulated/floor/plating, +/area/station/engineering/controlroom) "onD" = ( /obj/structure/chair/sofa/right{ dir = 4 @@ -76574,12 +76613,9 @@ /area/station/hallway/primary/port) "oAP" = ( /obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/chair, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 + dir = 8 }, +/obj/machinery/status_display/directional/west, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "oAU" = ( @@ -76879,14 +76915,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 10 }, -/obj/machinery/power/rad_collector, /obj/structure/window/plasmareinforced{ dir = 8 }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "oHi" = ( @@ -77051,22 +77082,16 @@ /turf/simulated/floor/plating, /area/station/maintenance/starboard) "oKV" = ( -/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" + d1 = 2; + d2 = 8; + icon_state = "2-8" }, -/obj/structure/reflector/box, /obj/effect/turf_decal/delivery, /turf/simulated/floor/engine, /area/station/engineering/controlroom) @@ -79359,14 +79384,9 @@ /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 6 }, -/obj/machinery/power/rad_collector, /obj/structure/window/plasmareinforced{ dir = 4 }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "pzB" = ( @@ -79991,12 +80011,13 @@ /turf/simulated/floor/plating, /area/station/science/robotics/showroom) "pJw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/power/rad_collector, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" }, -/obj/machinery/light/directional/east, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/turf/simulated/floor/engine, +/area/station/engineering/engine/supermatter) "pJP" = ( /obj/machinery/light/small/directional/south, /obj/machinery/power/smes, @@ -80284,11 +80305,14 @@ /turf/simulated/floor/plating, /area/station/maintenance/medmaint) "pOi" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "pOp" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/food/snacks/disk{ @@ -81037,12 +81061,9 @@ }, /area/station/medical/sleeper) "qdE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/directional/north, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "qdW" = ( /obj/structure/barricade/wooden, /obj/machinery/door/airlock/maintenance, @@ -82485,13 +82506,12 @@ /obj/machinery/atmospherics/pipe/manifold/hidden{ dir = 4 }, -/obj/machinery/power/rad_collector, /obj/structure/window/plasmareinforced{ dir = 8 }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" +/obj/structure/reflector/single{ + dir = 1; + anchored = 1 }, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) @@ -87600,14 +87620,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden{ dir = 8 }, -/obj/machinery/power/rad_collector, /obj/structure/window/plasmareinforced{ dir = 4 }, -/obj/structure/cable/yellow{ - d2 = 8; - icon_state = "0-8" - }, /turf/simulated/floor/engine, /area/station/engineering/engine/supermatter) "sqF" = ( @@ -88079,16 +88094,13 @@ }, /area/station/service/janitor) "syc" = ( -/obj/machinery/power/emitter{ - dir = 4 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; + name = "KEEP CLEAR: DOCKING AREA" }, -/obj/effect/turf_decal/delivery/hollow, -/turf/simulated/floor/engine, -/area/station/engineering/controlroom) +/obj/effect/spawner/window/reinforced/grilled, +/turf/simulated/floor/plating, +/area/station/hallway/secondary/entry) "syi" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -89881,8 +89893,10 @@ }, /area/station/service/kitchen) "tfE" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/economy/vending/coffee, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/directional/west, /turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "tfZ" = ( @@ -92856,11 +92870,13 @@ }, /area/station/medical/sleeper) "ufU" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 +/obj/machinery/light/small/directional/north, +/obj/machinery/camera{ + c_tag = "Supermatter North"; + network = list("SS13","Engineering") }, -/turf/simulated/floor/plasteel, -/area/station/hallway/secondary/entry) +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "uge" = ( /obj/structure/cable{ d1 = 4; @@ -95439,17 +95455,15 @@ /turf/simulated/floor/plating, /area/station/maintenance/old_kitchen) "uYk" = ( -/obj/machinery/hologram/holopad, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralfull" +/obj/machinery/light/small/directional/north, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" }, -/area/station/hallway/secondary/entry) +/obj/effect/turf_decal/delivery/hollow, +/obj/machinery/power/emitter, +/turf/simulated/floor/engine, +/area/station/engineering/controlroom) "uYD" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, @@ -97951,15 +97965,10 @@ }, /area/station/medical/virology) "vVB" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel{ - icon_state = "neutralfull" - }, +/obj/effect/turf_decal/delivery, +/obj/machinery/light/directional/west, +/obj/machinery/economy/vending/coffee, +/turf/simulated/floor/plasteel, /area/station/hallway/secondary/entry) "vVF" = ( /obj/machinery/hologram/holopad, @@ -126960,7 +126969,7 @@ aaa raB aaa eKj -tUw +ndW pJf rwj pJf @@ -127483,9 +127492,9 @@ avC fCZ axM ayM -aAd -aAd -aAd +mgh +mgh +mgh raH aCj aEf @@ -127732,16 +127741,16 @@ dij abj atd atd -kqp -rwj +ufU +iWM pJf sdI aLu qhe axO -ayM +ayO pyQ -sqD +aik sqD ksd ayM @@ -127988,7 +127997,7 @@ aaa dij aaa eKj -syc +pJf pJf rwj pJf @@ -128244,16 +128253,16 @@ aaa aaa raB aaa -uUh +onA nUR -nIM +qdE oKV -nIM +pOi lqL fjw lNO nUm -ayO +kJd aAa aBX aAa @@ -128502,7 +128511,7 @@ aaa dij aaa ths -kaO +pJf pJf rwj pJf @@ -128515,7 +128524,7 @@ aAb aAb aAb duJ -upc +mxG pcM gwO wQE @@ -128722,7 +128731,7 @@ aaa aaa aaa aaa -aaZ +aaa aaa aaa aaa @@ -128761,16 +128770,16 @@ abj atd atd kqp -rwj +gWk pJf dFZ iqR hwu axS -ayM +ayO oHg qEB -qEB +jhz nDt ayM ayM @@ -129026,7 +129035,7 @@ hZW axN ayM aAd -aAd +pJw aAd raH aDc @@ -129788,7 +129797,7 @@ dij abj atd atd -qWG +uYk tYw wqp axl @@ -130290,7 +130299,7 @@ aaa aaa aaa aaa -nhn +aaa aaa aaa aaa @@ -130545,16 +130554,16 @@ aaa aaa aaa aaa -ndW -wlY -ebA -adb aaa aaa -abj -abj -abj -abj +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa fOs fOs @@ -130802,18 +130811,18 @@ aaa aaa aaa aaa -acC -iWM -iWM -acC aaa aaa -abj aaa aaa -abj +aaa +aaa +aaa +aaa +aaa aaa abj +abj aaa abj aaa @@ -131057,19 +131066,19 @@ aaa aaa aaa aaa -adb -adb -adb -myI -myI -adb -acC -acC -adb -adb aaa -abj aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj apG apG apH @@ -131312,21 +131321,21 @@ aaa aaa aaa aaa -abj -abj -adb -oAP -krr -adZ -adZ -adZ -adZ -amz -aiE -adb -abj -abj aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj apG aqv aro @@ -131569,21 +131578,21 @@ aaa aaa aaa aaa -abj aaa -acC -mxG -uks -uks -uks -uks -uYk -mTu -iWM -acC aaa -abj aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj apG aqw arp @@ -131826,21 +131835,21 @@ aaa aaa aaa aaa -abj -abj -adb -onA -aeb -pJw -jhz -ufU -rJt -mTu -ajf -adb -abj -abj aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj apH aqx arq @@ -132083,21 +132092,21 @@ aaa aaa aaa aaa -abj aaa -adb -adb -acC -adb -adb -qdE -rJt -kJd -adb -adb aaa -abj aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj apG aqy arr @@ -132340,21 +132349,21 @@ aaa aaa aaa aaa -abj aaa aaa -abj aaa -abj -adb -afh -rJt -mTu -gWk -adb aaa -abj aaa +aaa +nhn +aaa +aaa +aaa +aaa +aaa +aaa +aaa +abj apH aqz ars @@ -132601,17 +132610,17 @@ abj abj abj abj +syc +wlY +ebA +acC +abj +abj +abj +abj abj abj -adb -afh -rJt -mTu -iWM -adb -aaa abj -aaa apH aqA art @@ -132847,28 +132856,28 @@ afb acC abj aaa -aaa -aaa -aaa abj acC acC acC +adb acC acC acC -aaa -aaa abj -adb -afh -rJt -mTu -tfE -adb aaa abj +acC +afb +afb +acC +abj +aaa +aaa +aaa aaa +aaa +abj apH aqB aru @@ -133106,26 +133115,26 @@ acC acC adb acC -acC -acC -acC -aik aiE +aiE +vVB nzd ajf +adb +adb acC acC -acC +adb +myI +myI acC adb -afh -rJt -mTu adb adb adb adb -aaa +adb +abj apH aqC arv @@ -133368,21 +133377,21 @@ adZ adZ adZ adZ +krr +tfE +adZ +san +oAP adZ adZ adZ adZ -aip -agA -agg -pOi -rJt mTu amL bKz wSO adb -aaa +abj apH aqz arw @@ -133628,18 +133637,18 @@ cMP uks uks uks +aNH uks -szQ uks uks uks -vVB +nyB oCV gQF rUl gEs adb -aaa +abj apG aqD arr @@ -133885,10 +133894,10 @@ aeb aeb aeb qQS +ryh aeb -agB aeb -mFy +ltw aeb reW amB @@ -133896,7 +133905,7 @@ amL ant anP adb -aaa +abj apH aqE ary @@ -134137,7 +134146,7 @@ acC acC acC acC -aio +ajy aiF aiI ajy @@ -134153,7 +134162,7 @@ adb sgZ qpo adb -aaa +abj apH apH apH diff --git a/modular_ss220/modular_ss220.dme b/modular_ss220/modular_ss220.dme index 1999cb2dbfe5..db070a1ff2ab 100644 --- a/modular_ss220/modular_ss220.dme +++ b/modular_ss220/modular_ss220.dme @@ -65,6 +65,7 @@ #include "radio_sound/radio_sound.dme" #include "screentip_change/_screentip_change.dme" #include "smart_equip_targeted/_smart_equip_targeted.dme" +#include "sm_space_drop/sm_space_drop.dme" #include "text_to_speech/_tts.dme" #include "title_screen/_title_screen.dme" #include "whitelist/_whitelist.dme" diff --git a/modular_ss220/sm_space_drop/code/paper_sm_info.dm b/modular_ss220/sm_space_drop/code/paper_sm_info.dm new file mode 100644 index 000000000000..b6be2c66c2f5 --- /dev/null +++ b/modular_ss220/sm_space_drop/code/paper_sm_info.dm @@ -0,0 +1,23 @@ +// Инструкция пользование системы сброса СМ + +/obj/item/paper/sm_paper + name = "\improper инструкция по использованию СБСКС" + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "paper" + info = {"

Инструкция по использованию Системы Быстрого Сброса Кристалла Суперматерии

+
1. Ни при каких обстоятельствах не нажимать на кнопку ради проверки ее работоспособности.
+ +
2. Решение о сбросе кристалла может принимать СЕ, или его ВРиО и выше.
+ +
3. Если целостность кристалла равна 10 или менее процентов, должен быть произведен сброс кристалла в кратчайшее время.
+ +
4. В случае отсутствия СЕ и до назначения его ВРиО, решение о сбросе кристалла принимает капитан.
+ +
5. Создание помехи при необходимости сброса кристалла квалифицируется статьей 400 Космического Закона.
+ +
Поздравляю! Теперь в случае вероятности взрыва кристалла Супер Материи, вы в состоянии сохранить целостность станции.
+ +
ПРИМЕЧАНИЕ: Кнопка сброса СМ находится в его буферной зоне на стене возле правого вента.
+
+

+"} diff --git a/modular_ss220/sm_space_drop/code/sm_button_NEW.dm b/modular_ss220/sm_space_drop/code/sm_button_NEW.dm new file mode 100644 index 000000000000..5440f3a5eee1 --- /dev/null +++ b/modular_ss220/sm_space_drop/code/sm_button_NEW.dm @@ -0,0 +1,97 @@ + +////////////////////////////////////// +// СБССМ Кнопки // +////////////////////////////////////// + +/obj/machinery/driver_button/sm_drop_button + name = "supermatter launch trigger" + desc = "ВНИМАНИЕ:Сброс кристала суперматерии. Неправомерное использование может привести к тюремному заключению." + icon = 'modular_ss220/sm_space_drop/icons/sm_buttons.dmi' + icon_state = "button" + anchored = TRUE + armor = list(melee = 50, bullet = 50, laser = 50, energy = 50, bomb = 10, rad = 100, fire = 90, acid = 70) + idle_power_consumption = 2 + active_power_consumption = 4 + resistance_flags = LAVA_PROOF | FIRE_PROOF + id_tag = "SpaceDropSM" + req_access = list(ACCESS_CE) + + var/glass = TRUE + var/launched = FALSE + +// In case we're annihilated by a meteor +/obj/machinery/driver_button/sm_drop_button/Destroy() + if(!launched) + launch_sequence() + return ..() + + +/obj/machinery/driver_button/sm_drop_button/update_icon() + if(launched) + icon_state = "[initial(icon_state)]_launched" + else if(!glass) + icon_state = "[initial(icon_state)]_open" + else + icon_state = "[initial(icon_state)]" + ..() + +/obj/machinery/driver_button/sm_drop_button/attack_hand(mob/user) + if(stat & (NOPOWER|BROKEN)) + return + + if(active) + return + + add_fingerprint(user) + + if(!allowed(usr)) + return + + use_power(5) + + // Already launched + if(launched) + to_chat(user, span_warning("Кнопку уже нажали")) + + // Glass present + else if(glass) + if(user.a_intent == INTENT_HARM) + user.custom_emote(EMOTE_VISIBLE, "разбивает стекло [src.name]!") + glass = FALSE + playsound(src, 'sound/effects/hit_on_shattered_glass.ogg', 100, 1) + update_icon() + else + user.custom_emote(EMOTE_VISIBLE, "дружески похлопывает по [src.name].") + to_chat(user, span_warning("Если вы пытаетесь разбить стекло, вам придется ударить по нему сильнее...")) + // Must be !glass and !launched + else + user.custom_emote(EMOTE_VISIBLE, "нажимает кнопку сброса [src.name]!") + visible_message(span_notice("Кнопка громко щелкает.")) + launch_sequence() + playsound(src, pick('modular_ss220/sm_space_drop/sound/button.ogg','modular_ss220/sm_space_drop/sound/button1.ogg','modular_ss220/sm_space_drop/sound/button2.ogg','modular_ss220/sm_space_drop/sound/button3.ogg','modular_ss220/sm_space_drop/sound/button4.ogg'), 100, 1) + update_icon() + + if(SSticker && SSticker.current_state == GAME_STATE_PLAYING) + var/area/area = get_area(src) + if(area) + message_admins("Supermatter Crystal has been launched to space by [key_name_admin(user)] [ADMIN_JMP(src)].") + investigate_log("has been launched to space at ([area.name]) by [key_name(user)].","supermatter") + +/obj/machinery/driver_button/sm_drop_button/launch_sequence() + if(launched) + return + launched = TRUE + update_icon() + + for(var/obj/machinery/atmospherics/supermatter_crystal/engine/crystal in SSair.atmos_machinery) + if(crystal.id_tag == id_tag) + crystal.anchored = FALSE + break + + ..() + +/obj/machinery/driver_button/sm_drop_button/rearm() + active = FALSE + +/obj/machinery/driver_button/drop_sm/multitool_act(mob/user, obj/item/I) + return FALSE diff --git a/modular_ss220/sm_space_drop/code/sm_mass_driver.dm b/modular_ss220/sm_space_drop/code/sm_mass_driver.dm new file mode 100644 index 000000000000..5969bee02750 --- /dev/null +++ b/modular_ss220/sm_space_drop/code/sm_mass_driver.dm @@ -0,0 +1,14 @@ +/obj/machinery/mass_driver/sm_mass_driver + name = "\improper пусковая установка СМ" + desc = "Запускает СМ бороздить просторы космоса." + icon = 'icons/obj/objects.dmi' + icon_state = "mass_driver" + anchored = TRUE + idle_power_consumption = 2 + active_power_consumption = 50 + resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + id_tag = "SpaceDropSM" + +/obj/machinery/sm_mass_driver/multitool_act(mob/user, obj/item/I) + return FALSE diff --git a/modular_ss220/sm_space_drop/code/sm_space_drop.dm b/modular_ss220/sm_space_drop/code/sm_space_drop.dm new file mode 100644 index 000000000000..d6e5b79952ec --- /dev/null +++ b/modular_ss220/sm_space_drop/code/sm_space_drop.dm @@ -0,0 +1,4 @@ +/obj/machinery/atmospherics/supermatter_crystal/engine + is_main_engine = TRUE + anchored = TRUE + var/id_tag = "SpaceDropSM" diff --git a/modular_ss220/sm_space_drop/icons/sm_buttons.dmi b/modular_ss220/sm_space_drop/icons/sm_buttons.dmi new file mode 100644 index 0000000000000000000000000000000000000000..c8628e4e96c61c63f018ec52217b6680ff90ed06 GIT binary patch literal 583 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 literal 0 HcmV?d00001 diff --git a/modular_ss220/sm_space_drop/sound/button1.ogg b/modular_ss220/sm_space_drop/sound/button1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3499e2d1722e6692bd1e60cccc3e14d8d5c90869 GIT binary patch literal 5377 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 a_^^Cu-oEWh0L(IX$3&2iFDR6(fc_0;Zz&%D literal 0 HcmV?d00001 diff --git a/modular_ss220/sm_space_drop/sound/button3.ogg b/modular_ss220/sm_space_drop/sound/button3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a28da269ad6147eaf4b02bb7b1f738910d894cec GIT binary patch literal 5381 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 J^5?y^{{zq2Kg<9C literal 0 HcmV?d00001 diff --git a/modular_ss220/sm_space_drop/sound/button4.ogg b/modular_ss220/sm_space_drop/sound/button4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..9fceed1611fa0afe1a9a7e805b5e66c21bca3084 GIT binary patch literal 5118 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