From 6ea0742d690368e1c6a0ca686fdbc87f0767bc4b Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Sun, 30 Mar 2014 20:11:08 +0800 Subject: [PATCH 1/4] Added inflatable walls and airlocks. --- baystation12.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/baystation12.dme b/baystation12.dme index 35fb099fd89..3dc088574d6 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -579,6 +579,7 @@ #include "code\game\objects\structures\flora.dm" #include "code\game\objects\structures\girders.dm" #include "code\game\objects\structures\grille.dm" +#include "code\game\objects\structures\inflatable.dm" #include "code\game\objects\structures\janicart.dm" #include "code\game\objects\structures\kitchen_spike.dm" #include "code\game\objects\structures\ladders.dm" From 7c75e591cd664d9923ac6436e59a363c6c6777a6 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Sun, 30 Mar 2014 21:41:13 +0800 Subject: [PATCH 2/4] Inflatable barrier boxes added to engineering. Inflatable barrier crates can be ordered by the QM. Briefcase icon_state fixed. --- code/datums/supplypacks.dm | 10 +++++++ .../items/weapons/storage/briefcase.dm | 1 + maps/tgstation2.dmm | 27 ++++++++++--------- 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 7d880242001..3e8dae5405c 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -174,6 +174,16 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Emergency Crate" group = "Engineering" +/datum/supply_packs/evacuation + name = "Inflatable barriers" + contains = list(/obj/item/weapon/storage/briefcase/inflatable, + /obj/item/weapon/storage/briefcase/inflatable, + /obj/item/weapon/storage/briefcase/inflatable) + cost = 20 + containertype = /obj/structure/closet/crate + containername = "Inflatable Barrier Crate" + group = "Engineering" + /datum/supply_packs/janitor name = "Janitorial supplies" contains = list(/obj/item/weapon/reagent_containers/glass/bucket, diff --git a/code/game/objects/items/weapons/storage/briefcase.dm b/code/game/objects/items/weapons/storage/briefcase.dm index 6fa791782d7..126d60e1e42 100644 --- a/code/game/objects/items/weapons/storage/briefcase.dm +++ b/code/game/objects/items/weapons/storage/briefcase.dm @@ -2,6 +2,7 @@ name = "briefcase" desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional." icon_state = "briefcase" + item_state = "briefcase" flags = FPRINT | TABLEPASS| CONDUCT force = 8.0 throw_speed = 1 diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 5eba03523f8..2c8a0d4f904 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -3216,10 +3216,10 @@ "bjR" = (/obj/machinery/faxmachine{department = "Captain's Office"},/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bjS" = (/obj/machinery/power/apc{dir = 1; name = "CE Office APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/engine/chiefs_office) "bjT" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/engine/chiefs_office) -"bjU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bjU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/chiefs_office) "bjV" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/medical/sleeper) "bjW" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/medical/sleeper) -"bjX" = (/obj/machinery/atm{pixel_y = 32},/turf/simulated/floor{dir = 4; icon_state = "yellowpatch"},/area/hallway/primary/aft) +"bjX" = (/obj/structure/rack{dir = 8; layer = 2.6},/obj/machinery/door/window/eastleft{name = "Inflatable Barriers"; req_one_access_txt = "11;24"},/obj/item/weapon/storage/briefcase/inflatable,/obj/item/weapon/storage/briefcase/inflatable{pixel_x = -3; pixel_y = -3},/turf/simulated/floor{dir = 4; icon_state = "yellowpatch"},/area/hallway/primary/aft) "bjY" = (/obj/machinery/atmospherics/pipe/simple{dir = 6; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) "bjZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/maintenance{name = "Medbay Diagnostics Maintenance Access"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/medical/sleeper) "bka" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -3319,7 +3319,7 @@ "blQ" = (/obj/effect/decal/cleanable/blood/oil{amount = 0},/turf/simulated/floor/plating,/area/maintenance/aft) "blR" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "blS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) -"blT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"blT" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/machinery/atm{pixel_x = -32},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "blU" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1379; glass = 1; icon_state = "door_locked"; id_tag = "tox_airlock_exterior"; locked = 1; name = "Mixing Room Exterior Airlock"; req_access_txt = "8"},/turf/simulated/floor/engine,/area/toxins/mixing) "blV" = (/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume{dir = 2; frequency = 1379; id = "tox_airlock_pump"},/turf/simulated/floor/engine,/area/toxins/mixing) "blW" = (/obj/machinery/door/airlock/glass_research{autoclose = 0; frequency = 1379; glass = 1; icon_state = "door_locked"; id_tag = "tox_airlock_interior"; locked = 1; name = "Mixing Room Interior Airlock"; req_access_txt = "8"},/turf/simulated/floor/engine,/area/toxins/mixing) @@ -3568,7 +3568,7 @@ "bqF" = (/obj/structure/table/woodentable,/obj/item/device/camera,/obj/item/weapon/storage/photo_album{pixel_y = -10},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bqG" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) "bqH" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/crew_quarters/captain) -"bqI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bqI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/chiefs_office) "bqJ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/ward) "bqK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bqL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Observation Room"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -3875,7 +3875,7 @@ "bwA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/item/device/radio/beacon,/turf/simulated/floor,/area/teleporter) "bwB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor,/area/teleporter) "bwC" = (/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,/area/teleporter) -"bwD" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/engine/chiefs_office) +"bwD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "bwE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) "bwF" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/wall,/area/medical/patient_c) "bwG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/engine/chiefs_office) @@ -3885,7 +3885,7 @@ "bwK" = (/turf/simulated/floor,/area/engine/chiefs_office) "bwL" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/yellow,/turf/simulated/floor/carpet,/area/engine/break_room) "bwM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/break_room) -"bwN" = (/obj/structure/disposalpipe/sortjunction{sortType = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) +"bwN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office) "bwO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "bwP" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bwQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/medical/patient_wing) @@ -3993,7 +3993,7 @@ "byO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "byP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) "byQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) -"byR" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor,/area/hallway/primary/aft) +"byR" = (/obj/structure/window/reinforced,/obj/structure/rack{dir = 8; layer = 2.6},/obj/machinery/door/window/eastright{name = "Inflatable Barriers"; req_one_access_txt = "11;24"},/obj/item/weapon/storage/briefcase/inflatable,/obj/item/weapon/storage/briefcase/inflatable{pixel_x = -3; pixel_y = -3},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "byS" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) "byT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "byU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -4061,9 +4061,9 @@ "bAe" = (/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = -25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bAf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/maintenance/evahallway) "bAg" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/evahallway) -"bAh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/chiefs_office) -"bAi" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/disposalpipe/segment,/obj/machinery/firealarm{dir = 4; layer = 3.3; pixel_x = 26},/turf/simulated/floor,/area/engine/chiefs_office) -"bAj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bAh" = (/obj/structure/stool/bed/chair{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/engine/chiefs_office) +"bAi" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/chiefs_office) +"bAj" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/structure/disposalpipe/sortjunction{sortType = 5},/turf/simulated/floor,/area/hallway/primary/aft) "bAk" = (/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bAl" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "EngineVent"; name = "Engine Ventillatory Control"; pixel_x = -24; pixel_y = 10; req_access_txt = "11"},/turf/simulated/floor,/area/engine/chiefs_office) "bAm" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/engine/chiefs_office) @@ -10914,6 +10914,7 @@ "ebT" = (/obj/effect/landmark/costume,/obj/structure/rack/holorack,/turf/simulated/floor/holofloor{icon_state = "cult"; dir = 2},/area/holodeck/source_theatre) "ebU" = (/obj/structure/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/hairflower,/turf/simulated/floor/holofloor{icon_state = "cult"; dir = 2},/area/holodeck/source_theatre) "ebV" = (/obj/structure/table/holotable/wood,/turf/simulated/floor/holofloor{icon_state = "grimy"; dir = 2},/area/holodeck/source_meetinghall) +"ebW" = (/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,/area/engine/chiefs_office) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11071,10 +11072,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaBcaCcaCcaDcaEbGDccfbJkbmKbGDaaaaaaaaaaaabGFbQybQzbQAbQBbGFbQCbGFbmIbmHbmJbgXbgXbmEbmGbmFbmCbmBbmDbfNbfNbfNbfNbfNbfNbkabnZbnXbpdboXboUboObpkbpjbpibphbpobpnbnIbpmbnIbnJbnubnvbnNbnObnLbnMbnObnSbnPbnQbnVbnWbnTbnUbmubmtbmwbmvbHkbmxbmzbmybmAbQabQbbQabRcbQcbRlbmhbojbRnbojbgnbMdbojbRoaafbQhbRpbRpblUblVblWbRtbRubRvbHrbgqbgpbAEbJbbJbbJbbJbbJbaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbKJbKJbKJbKJbKJbKJbRxbGnbKIbKJbRybGnbGnbGnbGnbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRecbncbocbpbJkbgsbJkbJkbgtbGDbguaaaaaaaaabGFbGFbGFbGFbGFbGFbGFbGFbhybhibhhbgXbgXbhBbgwbgxbgxbgwbgvbfNbgMbgLbgDbgBbfNbfGbymbymbfCbfAbfFbfEbBzbggbgibghbfJbfHbgfbfLbgTbgVbgWbgYbgjbgkbglbgrbhebhfbhjbhEbgZbhabhcbhdbinbilbidbhJbhIbhHbhGbhFbIIbisbIJbIIbIIbIHbSlbgmbSnbojbSobgnbMdbSpbSqaafbQhbRpbSrbQkbgobQkbStbSubSvbHrbgqbgpbiubitbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEPbGnbGnbGnbGnbGnbGnbNMbGnbRybGnbGnbGnbGnbGnbEPbEPaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccecaCcaCcaDcbtbiLbkebGDbkubGDccgbkvbkEccgccgbjFbjLbjMbjSbjTbjUbjXbYpbjqbjxbjubjybgwbjEbjDbiNbiMbiObfNbiQbiPbjpbiRbfNbkabPybjZbjYbjWbjVbiTbiTbkhbkgbkfbiDbkdbkcbkbbiDbiDbiBbiCbizbwUbivbiybivbiKbiIbiJbiGbiHbiEbiFbiGbklbidbkmbHkbkibkkbkjbkobknbiAbNrbIGbIGbrhbiwbrhbrhbrhbhTbTwbhRbrhbHrbHrbHrbHrbHrbhYbHrbHrbHrbHrbHrbgqbgpbkrbkpbyVaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabEPbEPbMvbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQchdalQalQalQalQalQaaaaaaaaaaaaaaaaaaaafaafaaabxlbwsbwsbwsbxkbwsbwsbwqbwrccgbwobwhccgbwJbwKbwHbwIbwDbwGbwtbwvbwSbwObwNbMNbwMbgwbjEbwLbxjbiMbxdbfNbiQbiPbxcbxabfNbkabPybymbvnbvlbvpbvobuQbtXbvebvdbiDbvfbvkbvjbvxbiDbvAbvFbvNbwUbvqbslbvqbiKbvrbvsbiGbvtbvubvwbiGbtTbidbksbHkbHkbtUbHkbIGbIGbuObIGbIGbUwbUxbuPbUzbUAbrhbiwbUvbvabrhbUDbUEbUFbUGbuSbgqbUIbAEbUJbAEbAEbgqbgpbUKbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEPbPebPcbPcbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbAVbATbptbAybAtbqmbAdbAfbAgccgbzSbzVccgccgbAlbAmbAnbAhbAibAjbAkbYpbyNbyRbyObyxbyJbyMbyLbzDbyJbyJbyybzpbznbzAcjcbfNbkabqZbqZbqZbqZbywbqZbqZbqZbysbyrbiDbyvbqJbytbtDbiDbylbynbyqbwUbskbypbwYbiKbwWbwXbiGbyibwZbyhbwFbwEbwQbwPbwRbwRbwVbwTbhCbhCbhDbhCbhCbhCbhCbyubxEbhCbxQbxSbyabyjbykbyobxAbxBbxAbxCbxDbxAbxAbxAbxAbxAbxzbxybxxbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQalQchdalQalQalQalQalQaaaaaaaaaaaaaaaaaaaafaafaaabxlbwsbwsbwsbxkbwsbwsbwqbwrccgbwobwhccgbwJbwKbwHbwIbAhbAibwNbyRbYpbjqbjxbMNbwMbgwbjEbwLbxjbiMbxdbfNbiQbiPbxcbxabfNbkabPybymbvnbvlbvpbvobuQbtXbvebvdbiDbvfbvkbvjbvxbiDbvAbvFbvNbwUbvqbslbvqbiKbvrbvsbiGbvtbvubvwbiGbtTbidbksbHkbHkbtUbHkbIGbIGbuObIGbIGbUwbUxbuPbUzbUAbrhbiwbUvbvabrhbUDbUEbUFbUGbuSbgqbUIbAEbUJbAEbAEbgqbgpbUKbyVbyVbyVaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbEObEPbPebPcbPcbGnbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbAVbATbptbAybAtbqmbAdbAfbAgccgbzSbzVccgccgbAlbAmbAnebWbwGbwtbwvbwSbwObAjbyObyxbyJbyMbyLbzDbyJbyJbyybzpbznbzAcjcbfNbkabqZbqZbqZbqZbywbqZbqZbqZbysbyrbiDbyvbqJbytbtDbiDbylbynbyqbwUbskbypbwYbiKbwWbwXbiGbyibwZbyhbwFbwEbwQbwPbwRbwRbwVbwTbhCbhCbhDbhCbhCbhCbhCbyubxEbhCbxQbxSbyabyjbykbyobxAbxBbxAbxCbxDbxAbxAbxAbxAbxAbxzbxybxxbVNbVObyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaaaaaabJcbEPbHybEPbEPbGnbGnbGnbGnbGnbGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbpsbpsbptbpvbpubqmbqqbpwbpPccgbqvbqsbqubqCbqDbqwbqBbqObqQbqIbqKbqVbqUbqTbqSbstbrMbrGbribsdbsebsdbsvbsubsjbjpbshbfNbkabqZbqYbqWbqRbqXbqWbqMbqLbqPbqNbpxbppbqJbqJbsmbiDbsnbsobsibwUbskbslbscbiKbsfbsgbiGbrObrVbsbbiGbssbidbvKboNbsrbsqbspboJboGboibnRbnKbnEbnEbnwbprbnEbnEbpqbpgbplbpabpabpebpfbpbbngbpabnjboZbnhbnhbngbnjbnibAEbnkbnmbnlbWWbnfbWYbWZbXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXabXbbXcbXcbXdbEPbEPbGnbGnbXebGnbGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSFbSFbSFbSFbSFbSFbSFbudbuhccgccgccgccgccgbukbuAbuKbuKbuKbuMbuNbYpbjqbjxbtsbjybttbtxbtubtEbtCbtGbfNbtVbtHbtYbtWbfNbtRbtQbtPbtObtObtNbtMbtLbqZbtKbtJbiDbtIbtFbqJbtDbiDbtAbtBbtzbwUbtybslbsBbiKbszbsAbiGbiGbiGbiGbiGbssbidbidbidbtScmHbPybGKbXObXPbXQbGKbGKaaaaaaaaaaaabXRbXSbTrbtlbHkbtrbTnbthbTpbTqbsLbjmbSkbIEbIEbShbHkbyVbXVbswbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbXYbXZbYabHzbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSFbSFbSFbSFbSFbSFbSFbudbuhccgccgccgccgccgbukbuAbuKbuKbuKbuMbuNbYpbyNbwDbtsbjybttbtxbtubtEbtCbtGbfNbtVbtHbtYbtWbfNbtRbtQbtPbtObtObtNbtMbtLbqZbtKbtJbiDbtIbtFbqJbtDbiDbtAbtBbtzbwUbtybslbsBbiKbszbsAbiGbiGbiGbiGbiGbssbidbidbidbtScmHbPybGKbXObXPbXQbGKbGKaaaaaaaaaaaabXRbXSbTrbtlbHkbtrbTnbthbTpbTqbsLbjmbSkbIEbIEbShbHkbyVbXVbswbXXbyVbyVbyVbyVaaaaafaaaaaaaaaanmanmanmaafaaaaaaaafaaaaaaaafaafaafbXYbXZbYabHzbEObEPbEPbGnbGobGnbEPbEPaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbSFbSGcnjcngcnhcnQbSFcodcoccnJcnIcnLcnKcnGcnGcnHcnEcnEcnDcnFbAkbYpbjqbjxcnCbwMcnzcnAcnBcnwcnxcnybfNbtVcnpcnqdTTbfNbkabqZdZLdZOdZOdZMdZNbqZdYtdZPdZQbiDdZTdZRdZSdZHbiDdZGbtBdZIbwUbtybslbsBbiKdZKdZJbiKbPxbPwbiddZUbssdZVdZWbidbtSdZXdZYbGKaaaaafaaaaaaaafaaaaaaaaaaaabYQbYRcolcokdPAcrRdPDcombTqdPPconcrfbIEbIEbIEdQRbHkbYUbYUcoebYWbYUaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbYXbEMbEMbENbEObEObEPbEPbEPbEPbEQaafaafaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaafaafaafbTebTebTebTebTebTebTebTebTebTebTebTebTeaaaaaacmobSGbSGbSGbSGcmAbSFcmzcmybxlcmxcmwcmucmvcmucmtcmscmrcmqcmpbAkbLjcmFcmCcmDbgXbgXbgXbgXbgXbgXbgXbfNbfNcmBbfNbfNbfNbkabqZbqZdZrdZsdZtdZubqZdZvdZwdZxbiDbkdbiDbiDbiDbiDbwUdZydZzbwUbskbsldZAbiKdZCdZBbiKbPxbPwbiddZDbssbidbidbidbtSdZEdZFbGKaaaaafaaaaaaaafaaaaaaaaaaaabZPbZQcjWcmXcmWcmVcnacmZcmYcmYcnecndcnbdPHbIEcqebHkbYUbZTcmGbZVbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalQaaaaaaaaaaaabTecnScqacnSbTecnOcpYcnObTecnMcpZcnMbTeaaaaaacphbSGcpXbSGbSGcpRbSFcpTcpScpVcpUcpWdRNcpGcpFcpIcpHcpHcpJcpHcpKcpAdRMbjxcpCcpDcpucpucpEcpucpucoMcpvcpwcpxcpyeaqcoMbkabEaeaxbMXbMXeaveaweaDeaEeaBeaCeazeaAeayeaeeaeeaudXBbwUbwUbwUeatbslbskbiKbiKbiKbiKbPybPybidbssbsseareasbidbtSanmanmbGKaaaaafaaaaaaaafaaaaaaaaaaaacaucavcqdcqcdPYcqgcqjcpmbTqbTqdQadPZbIEbIEbIEdQTbHkbYUcaycqbcaAbYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 47edd87cdb31e8f76a0dffda66fef86d24b990c9 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Sun, 30 Mar 2014 21:48:51 +0800 Subject: [PATCH 3/4] Updated changelog. --- html/changelog.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 4cbb7242b3f..ce63a24b997 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,14 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

30 March 2014

+

RavingManiac updated:

+
    +
  • Inflatable walls and doors added. Useful for sealing off hull breaches, but easily punctured by sharp objects and Tajarans.
  • +
+
+

10 March 2014

Chinsky updated:

@@ -72,7 +80,7 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Smartfridges added to the bar, chemistry and virology. No more clutter!
  • A certain musical instrument has returned to the bar.
  • -
  • There is now a ten second delay between ingesting a pill/donut/milkshake and feeling the effects of the vile chemicals within.
  • +
  • There is now a ten second delay between ingesting a pill/donut/milkshake and regretting it.
From b8e27c1347bba61012fe663d06957613d6ee17e4 Mon Sep 17 00:00:00 2001 From: RavingManiac Date: Sun, 30 Mar 2014 21:51:20 +0800 Subject: [PATCH 4/4] Missing files added. --- code/game/objects/structures/inflatable.dm | 304 +++++++++++++++++++++ icons/obj/inflatable.dmi | Bin 0 -> 4598 bytes 2 files changed, 304 insertions(+) create mode 100644 code/game/objects/structures/inflatable.dm create mode 100644 icons/obj/inflatable.dmi diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm new file mode 100644 index 00000000000..bc0f907a58f --- /dev/null +++ b/code/game/objects/structures/inflatable.dm @@ -0,0 +1,304 @@ +/obj/item/inflatable + name = "inflatable wall" + desc = "A folded membrane which rapidly expands into a large cubical shape on activation." + icon = 'icons/obj/inflatable.dmi' + icon_state = "folded_wall" + w_class = 3.0 + + attack_self(mob/user) + playsound(loc, 'sound/items/zip.ogg', 75, 1) + user << "\blue You inflate [src]." + var/obj/structure/inflatable/R = new /obj/structure/inflatable(user.loc) + src.transfer_fingerprints_to(R) + R.add_fingerprint(user) + del(src) + +/obj/structure/inflatable + name = "inflatable wall" + desc = "An inflated membrane. Do not puncture." + density = 1 + anchored = 1 + opacity = 0 + + icon = 'icons/obj/inflatable.dmi' + icon_state = "wall" + + var/health = 50.0 + + + New(location) + ..() + update_nearby_tiles(need_rebuild=1) + + Del() + update_nearby_tiles() + ..() + + proc/update_nearby_tiles(need_rebuild) //Copypasta from airlock code + if(!air_master) + return 0 + air_master.mark_for_update(get_turf(src)) + return 1 + + + + CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + return 0 + + bullet_act(var/obj/item/projectile/Proj) + health -= Proj.damage + ..() + if(health <= 0) + deflate(1) + return + + + ex_act(severity) + switch(severity) + if(1.0) + del(src) + return + if(2.0) + deflate(1) + return + if(3.0) + if(prob(50)) + deflate(1) + return + + + blob_act() + deflate(1) + + + meteorhit() + //world << "glass at [x],[y],[z] Mhit" + deflate(1) + + attack_paw(mob/user as mob) + return attack_generic(user, 15) + + attack_hand(mob/user as mob) + add_fingerprint(user) + return + + + proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime + health -= damage + if(health <= 0) + user.visible_message("[user] tears open [src]!") + deflate(1) + else //for nicer text~ + user.visible_message("[user] tears at [src]!") + + attack_alien(mob/user as mob) + if(islarva(user)) return + attack_generic(user, 15) + + attack_animal(mob/user as mob) + if(!isanimal(user)) return + var/mob/living/simple_animal/M = user + if(M.melee_damage_upper <= 0) return + attack_generic(M, M.melee_damage_upper) + + + attack_slime(mob/user as mob) + if(!isslimeadult(user)) return + attack_generic(user, rand(10, 15)) + + + attackby(obj/item/weapon/W as obj, mob/user as mob) + if(!istype(W)) return + + if (is_sharp(W)) + visible_message("\red [user] pierces [src] with [W]!") + deflate(1) + if(W.damtype == BRUTE || W.damtype == BURN) + hit(W.force) + ..() + return + + proc/hit(var/damage, var/sound_effect = 1) + health = max(0, health - damage) + if(sound_effect) + playsound(loc, 'sound/effects/Glasshit.ogg', 75, 1) + if(health <= 0) + deflate(1) + + + proc/deflate(var/violent=0) + playsound(loc, 'sound/machines/hiss.ogg', 75, 1) + if(violent) + visible_message("[src] rapidly deflates!") + var/obj/item/inflatable/torn/R = new /obj/item/inflatable/torn(loc) + src.transfer_fingerprints_to(R) + del(src) + else + //user << "\blue You slowly deflate the inflatable wall." + visible_message("[src] slowly deflates.") + spawn(50) + var/obj/item/inflatable/R = new /obj/item/inflatable(loc) + src.transfer_fingerprints_to(R) + del(src) + + verb/hand_deflate() + set name = "Deflate" + set category = "Object" + set src in oview(1) + + deflate() + +/obj/item/inflatable/door/ + name = "inflatable door" + desc = "A folded membrane which rapidly expands into a simple door on activation." + icon = 'icons/obj/inflatable.dmi' + icon_state = "folded_door" + + attack_self(mob/user) + playsound(loc, 'sound/items/zip.ogg', 75, 1) + user << "\blue You inflate [src]." + var/obj/structure/inflatable/door/R = new /obj/structure/inflatable/door(user.loc) + src.transfer_fingerprints_to(R) + R.add_fingerprint(user) + del(src) + +/obj/structure/inflatable/door //Based on mineral door code + name = "inflatable door" + density = 1 + anchored = 1 + opacity = 0 + + icon = 'icons/obj/inflatable.dmi' + icon_state = "door_closed" + + var/state = 0 //closed, 1 == open + var/isSwitchingStates = 0 + + //Bumped(atom/user) + // ..() + // if(!state) + // return TryToSwitchState(user) + // return + + attack_ai(mob/user as mob) //those aren't machinery, they're just big fucking slabs of a mineral + if(isAI(user)) //so the AI can't open it + return + else if(isrobot(user)) //but cyborgs can + if(get_dist(user,src) <= 1) //not remotely though + return TryToSwitchState(user) + + attack_paw(mob/user as mob) + return TryToSwitchState(user) + + attack_hand(mob/user as mob) + return TryToSwitchState(user) + + CanPass(atom/movable/mover, turf/target, height=0, air_group=0) + if(air_group) + return state + if(istype(mover, /obj/effect/beam)) + return !opacity + return !density + + proc/TryToSwitchState(atom/user) + if(isSwitchingStates) return + if(ismob(user)) + var/mob/M = user + if(world.time - user.last_bumped <= 60) return //NOTE do we really need that? + if(M.client) + if(iscarbon(M)) + var/mob/living/carbon/C = M + if(!C.handcuffed) + SwitchState() + else + SwitchState() + else if(istype(user, /obj/mecha)) + SwitchState() + + proc/SwitchState() + if(state) + Close() + else + Open() + update_nearby_tiles() + + proc/Open() + isSwitchingStates = 1 + //playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 100, 1) + flick("door_opening",src) + sleep(10) + density = 0 + opacity = 0 + state = 1 + update_icon() + isSwitchingStates = 0 + + proc/Close() + isSwitchingStates = 1 + //playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 100, 1) + flick("door_closing",src) + sleep(10) + density = 1 + opacity = 0 + state = 0 + update_icon() + isSwitchingStates = 0 + + update_icon() + if(state) + icon_state = "door_open" + else + icon_state = "door_closed" + + deflate(var/violent=0) + playsound(loc, 'sound/machines/hiss.ogg', 75, 1) + if(violent) + visible_message("[src] rapidly deflates!") + var/obj/item/inflatable/door/torn/R = new /obj/item/inflatable/door/torn(loc) + src.transfer_fingerprints_to(R) + del(src) + else + //user << "\blue You slowly deflate the inflatable wall." + visible_message("[src] slowly deflates.") + spawn(50) + var/obj/item/inflatable/door/R = new /obj/item/inflatable/door(loc) + src.transfer_fingerprints_to(R) + del(src) + + +/obj/item/inflatable/torn + name = "torn inflatable wall" + desc = "A folded membrane which rapidly expands into a large cubical shape on activation. It is too torn to be usable." + icon = 'icons/obj/inflatable.dmi' + icon_state = "folded_wall_torn" + + attack_self(mob/user) + user << "\blue The inflatable wall is too torn to be inflated!" + add_fingerprint(user) + +/obj/item/inflatable/door/torn + name = "torn inflatable door" + desc = "A folded membrane which rapidly expands into a simple door on activation. It is too torn to be usable." + icon = 'icons/obj/inflatable.dmi' + icon_state = "folded_door_torn" + + attack_self(mob/user) + user << "\blue The inflatable door is too torn to be inflated!" + add_fingerprint(user) + +/obj/item/weapon/storage/briefcase/inflatable + name = "inflatable barrier box" + desc = "Contains inflatable walls and doors." + icon_state = "inf_box" + item_state = "syringe_kit" + max_combined_w_class = 21 + + New() + ..() + new /obj/item/inflatable/door(src) + new /obj/item/inflatable/door(src) + new /obj/item/inflatable/door(src) + new /obj/item/inflatable(src) + new /obj/item/inflatable(src) + new /obj/item/inflatable(src) + new /obj/item/inflatable(src) \ No newline at end of file diff --git a/icons/obj/inflatable.dmi b/icons/obj/inflatable.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d80e12b7077f69bfd4a215d43996bf559599af74 GIT binary patch literal 4598 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