diff --git a/_maps/RandomZLevels/blackmarketpackers.dmm b/_maps/RandomZLevels/blackmarketpackers.dmm index 12f9ed60419..4b869922bd8 100644 --- a/_maps/RandomZLevels/blackmarketpackers.dmm +++ b/_maps/RandomZLevels/blackmarketpackers.dmm @@ -32,7 +32,7 @@ "aF" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship/Aft) "aG" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "aH" = (/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) -"aI" = (/obj/item/weapon/handcuffs,/obj/item/weapon/handcuffs,/obj/structure/closet/crate,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) +"aI" = (/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/restraints/handcuffs,/obj/structure/closet/crate,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "aJ" = (/obj/item/weapon/scalpel,/obj/structure/closet/crate,/obj/item/weapon/tank/anesthetic,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "aK" = (/obj/item/bodybag,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) "aL" = (/obj/item/weapon/storage/box/syringes,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft) diff --git a/_maps/RandomZLevels/centcomAway.dmm b/_maps/RandomZLevels/centcomAway.dmm index bacbe6b4aa9..6d922312984 100644 --- a/_maps/RandomZLevels/centcomAway.dmm +++ b/_maps/RandomZLevels/centcomAway.dmm @@ -591,7 +591,7 @@ "ls" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/awaymission/centcomAway/thunderdome) "lt" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/awaymission/centcomAway/thunderdome) "lu" = (/turf/simulated/floor{dir = 8; icon_state = "red"},/area/awaymission/centcomAway/thunderdome) -"lv" = (/obj/structure/rack,/obj/item/weapon/legcuffs/beartrap,/obj/item/weapon/twohanded/fireaxe,/turf/simulated/floor{icon_state = "dark"},/area/awaymission/centcomAway/thunderdome) +"lv" = (/obj/structure/rack,/obj/item/weapon/restraints/legcuffs/beartrap,/obj/item/weapon/twohanded/fireaxe,/turf/simulated/floor{icon_state = "dark"},/area/awaymission/centcomAway/thunderdome) "lw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/awaymission/centcomAway/thunderdome) "lx" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/awaymission/centcomAway/thunderdome) "ly" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/awaymission/centcomAway/thunderdome) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 9c6f4f43367..b9a24574087 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -29,7 +29,7 @@ "aC" = (/turf/simulated/floor{dir = 4; heat_capacity = 1e+006; icon_state = "darkredcorners"; tag = "icon-darkredcorners (EAST)"},/area/awaycontent/a4{name = "Syndicate Outpost"}) "aD" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 5; heat_capacity = 1e+006; icon_state = "darkred"; tag = "icon-darkred (NORTHEAST)"},/area/awaycontent/a4{name = "Syndicate Outpost"}) "aE" = (/obj/structure/alien/weeds/node,/obj/structure/alien/resin/wall,/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/mine/explored) -"aF" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/stool/bed/nest,/obj/effect/decal/cleanable/blood/gibs,/obj/item/clothing/mask/facehugger{icon_state = "facehugger_impregnated"; item_state = "facehugger_impregnated"; stat = 2},/obj/item/clothing/under/rank/security/science,/obj/item/clothing/suit/armor/vest,/obj/item/weapon/melee/baton/loaded,/obj/item/clothing/head/helmet,/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/mine/explored) +"aF" = (/obj/structure/alien/weeds{icon_state = "weeds1"},/obj/structure/stool/bed/nest,/obj/effect/decal/cleanable/blood/gibs,/obj/item/clothing/mask/facehugger{icon_state = "facehugger_impregnated"; item_state = "facehugger_impregnated"; stat = 2},/obj/item/clothing/under/rank/security,/obj/item/clothing/suit/armor/vest,/obj/item/weapon/melee/baton/loaded,/obj/item/clothing/head/helmet,/turf/simulated/floor/plating/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/mine/explored) "aG" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "darkredcorners"; tag = "icon-darkredcorners (NORTH)"},/area/awaycontent/a4{name = "Syndicate Outpost"}) "aH" = (/obj/machinery/gateway{dir = 9},/turf/simulated/floor{dir = 1; heat_capacity = 1e+006; icon_state = "vault"},/area/awaycontent/a4{name = "Syndicate Outpost"}) "aI" = (/obj/machinery/gateway{dir = 1},/turf/simulated/floor{dir = 8; heat_capacity = 1e+006; icon_state = "vault"},/area/awaycontent/a4{name = "Syndicate Outpost"}) diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index 2bc373f7cf5..e7293b97535 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -64,15 +64,15 @@ "bl" = (/obj/structure/table/reinforced,/obj/item/clothing/head/helmet/swat,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate3) "bm" = (/obj/machinery/computer/pod{id = "spacebattlepod3"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate2) "bn" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "spacebattlepod3"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/awaymission/spacebattle/syndicate2) -"bo" = (/obj/structure/table/reinforced,/obj/item/weapon/plastique,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate3) +"bo" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate3) "bp" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) -"bq" = (/obj/structure/table/reinforced,/obj/item/weapon/plastique,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) +"bq" = (/obj/structure/table/reinforced,/obj/item/weapon/c4,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) "br" = (/obj/structure/table/reinforced,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) -"bs" = (/obj/structure/table/reinforced,/obj/item/weapon/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) +"bs" = (/obj/structure/table/reinforced,/obj/item/weapon/restraints/handcuffs,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) "bt" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate3) "bu" = (/obj/structure/stool/bed/chair,/mob/living/simple_animal/hostile/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate3) "bv" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate3) -"bw" = (/obj/structure/table/reinforced,/obj/item/weapon/melee/energy/sword/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) +"bw" = (/obj/structure/table/reinforced,/obj/item/weapon/melee/energy/sword/saber/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate1) "bx" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate3) "by" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate3) "bz" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate3) @@ -257,7 +257,7 @@ "eW" = (/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "eX" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/spacebattle/cruiser) "eY" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/utensil/fork,/turf/simulated/floor{icon_state = "bar"},/area/awaymission/spacebattle/cruiser) -"eZ" = (/obj/effect/landmark/corpse/syndicatesoldier,/obj/item/weapon/melee/energy/sword/red,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) +"eZ" = (/obj/effect/landmark/corpse/syndicatesoldier,/obj/item/weapon/melee/energy/sword/saber/red,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "fa" = (/obj/effect/landmark/corpse/bridgeofficer{mobname = "Kurt Kliest"; name = "Kurt Kliest"},/obj/item/weapon/gun/projectile/shotgun/combat,/obj/item/ammo_casing/shotgun,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "fb" = (/obj/item/ammo_casing/shotgun,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/awaymission/spacebattle/cruiser) "fc" = (/obj/machinery/computer/crew,/turf/simulated/floor{tag = "icon-bluefull"; icon_state = "bluefull"},/area/awaymission/spacebattle/cruiser) @@ -359,7 +359,7 @@ "gU" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/syndicate7) "gV" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/syndicate4) "gW" = (/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) -"gX" = (/obj/item/weapon/ore/clown,/obj/item/weapon/ore/clown,/obj/item/weapon/ore/clown,/obj/item/weapon/ore/clown,/obj/item/weapon/ore/clown,/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) +"gX" = (/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/structure/closet/crate,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser) "gY" = (/obj/machinery/computer/operating,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "gZ" = (/obj/effect/landmark/corpse/doctor{mobname = "Allan Yoshimaru"; name = "Allan Yoshimaru"},/obj/effect/decal/cleanable/blood,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) "ha" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor{icon_state = "white"},/area/awaymission/spacebattle/cruiser) diff --git a/_maps/RandomZLevels/spacehotel.dmm b/_maps/RandomZLevels/spacehotel.dmm index 37119d795d7..bbd30554a64 100644 --- a/_maps/RandomZLevels/spacehotel.dmm +++ b/_maps/RandomZLevels/spacehotel.dmm @@ -229,7 +229,7 @@ "eu" = (/obj/structure/rack,/obj/item/key,/obj/item/key,/obj/item/key,/obj/item/key,/obj/item/key,/turf/simulated/floor/carpet,/area/awaymission) "ev" = (/obj/structure/stool/bed/chair/comfy,/obj/effect/decal/cleanable/flour{desc = "Probably."},/obj/effect/decal/cleanable/pie_smudge,/turf/simulated/floor/carpet,/area/awaymission) "ew" = (/obj/structure/stool/bed/chair/comfy,/obj/effect/decal/cleanable/flour{desc = "Probably."},/obj/effect/decal/cleanable/flour{desc = "Probably."},/obj/effect/decal/cleanable/pie_smudge,/turf/simulated/floor/carpet,/area/awaymission) -"ex" = (/obj/item/weapon/legcuffs,/turf/simulated/floor/engine/cult,/area/awaymission) +"ex" = (/obj/item/weapon/restraints/legcuffs,/turf/simulated/floor/engine/cult,/area/awaymission) "ey" = (/obj/machinery/space_heater,/turf/simulated/floor/carpet,/area/awaymission) "ez" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/awaymission) "eA" = (/obj/structure/table,/obj/machinery/computer/security/telescreen{desc = "Not used to spy on hotel rooms."; dir = 1; network = "Hotel"; use_power = 0},/turf/simulated/floor/carpet,/area/awaymission) diff --git a/_maps/RandomZLevels/stationCollision.dmm b/_maps/RandomZLevels/stationCollision.dmm index 878dbb8e934..72197b4a527 100644 --- a/_maps/RandomZLevels/stationCollision.dmm +++ b/_maps/RandomZLevels/stationCollision.dmm @@ -362,7 +362,7 @@ "gX" = (/obj/effect/decal/remains/human,/turf/simulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/awaymission/arrivalblock) "gY" = (/obj/machinery/computer/security,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/awaymission/arrivalblock) "gZ" = (/obj/machinery/computer/secure_data,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) -"ha" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/melee/baton,/obj/item/clothing/head/helmet/warden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) +"ha" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/security_space_law,/obj/item/weapon/melee/baton,/obj/item/clothing/head/warden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) "hb" = (/obj/structure/closet/wardrobe/red,/obj/machinery/light{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) "hc" = (/obj/structure/closet/secure_closet/security,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/awaymission/arrivalblock) "hd" = (/obj/structure/closet/secure_closet/security,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/awaymission/arrivalblock) @@ -400,7 +400,7 @@ "hJ" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/awaymission/arrivalblock) "hK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/awaymission/arrivalblock) "hL" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor,/area/awaymission/arrivalblock) -"hM" = (/obj/structure/table,/obj/item/weapon/handcuffs,/obj/item/device/flash,/turf/simulated/floor,/area/awaymission/arrivalblock) +"hM" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flash,/turf/simulated/floor,/area/awaymission/arrivalblock) "hN" = (/turf/simulated/floor{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock) "hO" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/effect/decal/remains/human,/turf/simulated/floor,/area/awaymission/midblock) "hP" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/purple,/turf/simulated/floor,/area/awaymission/midblock) @@ -557,7 +557,7 @@ "kK" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor,/area/awaymission/arrivalblock) "kL" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor,/area/awaymission/arrivalblock) "kM" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor,/area/awaymission/arrivalblock) -"kN" = (/obj/item/weapon/melee/energy/sword/red,/obj/item/clothing/shoes/syndigaloshes,/obj/item/clothing/under/syndicate,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/weapon/paper/sc_safehint_paper_hydro,/turf/simulated/floor,/area/awaymission/arrivalblock) +"kN" = (/obj/item/weapon/melee/energy/sword/saber/red,/obj/item/clothing/shoes/syndigaloshes,/obj/item/clothing/under/syndicate,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/weapon/paper/sc_safehint_paper_hydro,/turf/simulated/floor,/area/awaymission/arrivalblock) "kO" = (/obj/machinery/hydroponics,/turf/simulated/floor,/area/awaymission/arrivalblock) "kP" = (/obj/structure/morgue,/turf/simulated/floor{icon_state = "white"},/area/awaymission/southblock) "kQ" = (/obj/machinery/vending/medical,/turf/simulated/floor{icon_state = "white"},/area/awaymission/southblock) diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index fe89c81e4f5..842f6c0278a 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -1032,7 +1032,7 @@ "atR" = (/obj/item/stack/sheet/cardboard,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/starboard) "atS" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "atT" = (/obj/structure/cable,/obj/machinery/power/emitter{anchored = 1; state = 2},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"atU" = (/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/weapon/storage/box/bodybags,/obj/item/device/assembly/signaler,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) +"atU" = (/obj/structure/table,/obj/item/device/electropack,/obj/item/weapon/storage/box/bodybags,/obj/item/device/assembly/signaler,/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "atV" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/obj/machinery/power/apc{cell_type = 2500; dir = 1; name = "Prisoner Education Chamber APC"; pixel_y = 24},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "atW" = (/obj/structure/closet/secure_closet/injection,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 26},/turf/simulated/floor{icon_state = "dark"},/area/prison/solitary{name = "Prisoner Education Chamber"}) "atX" = (/turf/simulated/wall/r_wall,/area/turret_protected/ai) @@ -1477,7 +1477,7 @@ "aCu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/power/apc{dir = 2; name = "Storage Wing APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 4; icon_state = "browncorner"},/area/construction/Storage{name = "Storage Wing"}) "aCv" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/carpet,/area/security/hos) "aCw" = (/obj/structure/table/woodentable,/obj/item/weapon/stamp/hos,/turf/simulated/floor/carpet,/area/security/hos) -"aCx" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/item/weapon/gun/projectile/shotgun/sc_pump{name = "riot shotgun"; pixel_x = 4; pixel_y = -3},/obj/item/weapon/gun/projectile/shotgun/sc_pump{name = "riot shotgun"; pixel_x = -2; pixel_y = 3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) +"aCx" = (/obj/structure/rack,/obj/item/weapon/shield/riot{pixel_x = -3; pixel_y = 3},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden) "aCy" = (/obj/structure/closet/crate/internals,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "floorgrime"},/area/quartermaster/sorting{name = "\improper Warehouse"}) "aCz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/security/brig) "aCA" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/security/range) @@ -7953,7 +7953,7 @@ "cXe" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew1,/area/space) "cXf" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) "cXg" = (/obj/item/device/radio/off,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) -"cXh" = (/obj/structure/table,/obj/item/device/radio/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) +"cXh" = (/obj/structure/table,/obj/item/device/electropack,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber) "cXi" = (/obj/structure/table,/obj/item/weapon/circular_saw,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) "cXj" = (/obj/structure/table,/obj/item/weapon/hemostat,/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) "cXk" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/lethal/choral,/obj/item/weapon/reagent_containers/syringe/lethal{pixel_y = 4},/turf/simulated/floor/airless{icon_state = "dark"},/area/tcommsat/chamber) @@ -9704,7 +9704,7 @@ "dEN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = 1},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -26},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/hallway/primary/aft) "dEO" = (/obj/structure/closet/wardrobe/virology_white,/obj/item/weapon/storage/backpack/satchel_vir,/turf/simulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/medical/virology) "dEP" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/turf/simulated/floor/engine,/area/toxins/xenobiology) -"dEQ" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/radio/electropack,/turf/simulated/floor/engine,/area/toxins/xenobiology) +"dEQ" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/electropack,/turf/simulated/floor/engine,/area/toxins/xenobiology) "dER" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "dES" = (/obj/machinery/computer/security/telescreen{dir = 1; name = "Test Chamber Monitor"; network = list("Xeno"); pixel_x = 0; pixel_y = 2},/obj/structure/table/reinforced,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/toxins/xenobiology) "dET" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera/autoname{dir = 4; network = list("SS13","RD")},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) diff --git a/_maps/map_files/MiniStation/MiniStation.dmm b/_maps/map_files/MiniStation/MiniStation.dmm index fcd38d5667f..2ff5f3b70b7 100644 --- a/_maps/map_files/MiniStation/MiniStation.dmm +++ b/_maps/map_files/MiniStation/MiniStation.dmm @@ -648,7 +648,7 @@ "amx" = (/obj/machinery/conveyor{dir = 2; id = "recycler"},/turf/simulated/floor/plating,/area/hallway/primary/central) "amy" = (/obj/machinery/conveyor_switch/oneway{id = "recycler"; name = "recycler conveyor"},/turf/simulated/floor/plating,/area/hallway/primary/central) "amz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/hallway/primary/central) -"amA" = (/obj/structure/table,/obj/item/clothing/head/welding,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/blueprints,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/ai_monitored/storage/eva) +"amA" = (/obj/structure/table,/obj/item/clothing/head/welding,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/obj/item/areaeditor/blueprints,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/ai_monitored/storage/eva) "amB" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/closet/crate/rcd,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) "amC" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) "amD" = (/obj/machinery/camera/autoname,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/light{dir = 1},/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index e1cd1c8c540..f394853e339 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -3393,7 +3393,7 @@ "bnm" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (WEST)"; dir = 8},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "bnn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "bno" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/checkpoint2) -"bnp" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Arrivals Security Checkpoint"; req_access = "63"; req_one_access = null},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/entry) +"bnp" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Arrivals Security Checkpoint"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/secondary/entry) "bnq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) "bnr" = (/obj/item/weapon/stamp{pixel_x = -3; pixel_y = 3},/obj/item/weapon/stamp/denied{pixel_x = 4; pixel_y = -2},/obj/structure/table,/turf/simulated/floor,/area/quartermaster/office) "bns" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/clipboard,/obj/item/weapon/pen/red,/obj/structure/table,/turf/simulated/floor,/area/quartermaster/office) @@ -8870,7 +8870,7 @@ "doD" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable,/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/ai_monitored/storage/secure) "doE" = (/obj/structure/rack,/obj/item/clothing/suit/armor/bulletproof{pixel_x = -4; pixel_y = 3},/obj/item/clothing/suit/armor/laserproof,/turf/simulated/floor{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "doF" = (/obj/structure/rack,/obj/item/weapon/storage/box/chemimp{pixel_x = 4; pixel_y = 3},/obj/item/weapon/storage/box/trackimp,/obj/item/weapon/storage/box/teargas,/turf/simulated/floor{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) -"doG" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun{desc = "Primarily used as a non-letheal alternative to riot control."; name = "riot shotgun"},/obj/item/weapon/gun/projectile/shotgun{desc = "Primarily used as a non-letheal alternative to riot control."; name = "riot shotgun"; pixel_x = 3; pixel_y = 3},/turf/simulated/floor{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) +"doG" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/shotgun/riot{pixel_x = 3; pixel_y = 3},/obj/item/weapon/gun/projectile/shotgun/riot,/turf/simulated/floor{dir = 2; icon_state = "bot"},/area/ai_monitored/security/armory) "doH" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/turf/simulated/floor{icon_state = "yellow"},/area/ai_monitored/storage/secure) "doI" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/wiki/security_space_law,/turf/simulated/floor/carpet,/area/security/hos) "doJ" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/space) diff --git a/code/WorkInProgress/Sigyn/Softcurity/jobs.dm b/code/WorkInProgress/Sigyn/Softcurity/jobs.dm index 31012173420..7ef0b8ccddb 100644 --- a/code/WorkInProgress/Sigyn/Softcurity/jobs.dm +++ b/code/WorkInProgress/Sigyn/Softcurity/jobs.dm @@ -49,7 +49,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/warden(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(H), slot_glasses) - H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) @@ -115,7 +115,7 @@ H.equip_to_slot_or_del(new /obj/item/clothing/shoes/boots(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/device/pda/security(H), slot_belt) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_r_store) - H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) diff --git a/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm b/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm index 3631930e596..49ae813fab0 100644 --- a/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm +++ b/code/WorkInProgress/Sigyn/Softcurity/secure_closet.dm @@ -49,7 +49,7 @@ new /obj/item/clothing/shoes/brown(src) new /obj/item/weapon/storage/id_kit(src) new /obj/item/weapon/storage/id_kit( src ) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) return @@ -73,7 +73,7 @@ new /obj/item/weapon/storage/lockbox/loyalty(src) new /obj/item/weapon/storage/flashbang_kit(src) new /obj/item/weapon/storage/belt/security(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/gun/energy/taser(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) @@ -122,7 +122,7 @@ new /obj/item/weapon/storage/backpack/satchel_sec(src) new /obj/item/device/radio/headset/headset_sec(src) new /obj/item/weapon/storage/belt/security(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/clothing/glasses/sunglasses(src) diff --git a/code/_onclick/hud/alien.dm b/code/_onclick/hud/alien.dm index 877195d6f52..ff3c1405301 100644 --- a/code/_onclick/hud/alien.dm +++ b/code/_onclick/hud/alien.dm @@ -59,6 +59,15 @@ adding += using action_intent = using + if(istype(mymob, /mob/living/carbon/alien/humanoid/hunter)) + mymob.leap_icon = new /obj/screen() + mymob.leap_icon.name = "leap" + mymob.leap_icon.icon = 'icons/mob/screen_alien.dmi' + mymob.leap_icon.icon_state = "leap_off" + mymob.leap_icon.screen_loc = ui_alien_storage_r + mymob.leap_icon.layer = 20 + adding += mymob.leap_icon + using = new /obj/screen() using.name = "mov_intent" using.icon = 'icons/mob/screen_alien.dmi' diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index f97237f5694..b64cf1cdb41 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -397,6 +397,10 @@ if(issilicon(usr)) var/mob/living/silicon/S = usr S.sensor_mode() + if("leap") + if(istype(usr, /mob/living/carbon/alien/humanoid)) + var/mob/living/carbon/alien/humanoid/hunter/AH = usr + AH.toggle_leap() else return 0 return 1 diff --git a/code/game/gamemodes/objective_items.dm b/code/game/gamemodes/objective_items.dm index 0d790710241..b0e35a07051 100644 --- a/code/game/gamemodes/objective_items.dm +++ b/code/game/gamemodes/objective_items.dm @@ -107,13 +107,13 @@ datum/objective_item/functionalai/check_special_completion(var/obj/item/device/a datum/objective_item/steal/blueprints name = "the station blueprints" - targetitem = /obj/item/blueprints + targetitem = /obj/item/areaeditor/blueprints difficulty = 10 excludefromjob = list("Chief Engineer") altitems = list(/obj/item/weapon/photo) datum/objective_item/blueprints/check_special_completion(var/obj/item/I) - if(istype(I, /obj/item/blueprints)) + if(istype(I, /obj/item/areaeditor/blueprints)) return 1 if(istype(I, /obj/item/weapon/photo)) var/obj/item/weapon/photo/P = I diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm index e8560103ecc..1aaee715f37 100644 --- a/code/game/gamemodes/wizard/rightandwrong.dm +++ b/code/game/gamemodes/wizard/rightandwrong.dm @@ -58,7 +58,7 @@ if("doublebarrel") new /obj/item/weapon/gun/projectile/revolver/doublebarrel(get_turf(H)) if("shotgun") - new /obj/item/weapon/gun/projectile/shotgun/(get_turf(H)) + new /obj/item/weapon/gun/projectile/shotgun(get_turf(H)) if("combatshotgun") new /obj/item/weapon/gun/projectile/shotgun/combat(get_turf(H)) if("mateba") diff --git a/code/game/jobs/job/assistant.dm b/code/game/jobs/job/assistant.dm index d23c954f352..4c67f3feac4 100644 --- a/code/game/jobs/job/assistant.dm +++ b/code/game/jobs/job/assistant.dm @@ -14,8 +14,8 @@ Assistant minimal_access = list() //See /datum/job/assistant/get_access() /datum/job/assistant/equip_items(var/mob/living/carbon/human/H) - H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/clothing/under/color/random(H), slot_w_uniform) /datum/job/assistant/get_access() if(config.jobs_have_maint_access & ASSISTANTS_HAVE_MAINT_ACCESS) //Config has assistant maint access set diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 7ea6afcadf5..e7b5df5df67 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -137,7 +137,7 @@ Cargo Technician department_head = list("Head of Personnel") department_flag = CIVILIAN faction = "Station" - total_positions = 2 + total_positions = 3 spawn_positions = 2 supervisors = "the quartermaster and the head of personnel" selection_color = "#dddddd" diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index f45733dd62e..c0975987618 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -75,7 +75,7 @@ Roboticist department_flag = MEDSCI faction = "Station" total_positions = 2 - spawn_positions = 1 + spawn_positions = 2 supervisors = "research director" selection_color = "#ffeeff" diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index 5aa5448c8c3..613b07e545c 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -84,7 +84,7 @@ Warden H.equip_to_slot_or_del(new /obj/item/clothing/head/warden(H), slot_head) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/black(H), slot_gloves) H.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses) - H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) if(H.backbag == 1) H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_l_hand) @@ -175,7 +175,7 @@ Security Officer H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head) H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_s_store) - H.equip_to_slot_or_del(new /obj/item/device/flash(H), slot_l_store) + H.equip_to_slot_or_del(new /obj/item/device/flash/handheld(H), slot_l_store) if(H.backbag == 1) H.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(H), slot_r_store) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 61bad5a2779..0a642258374 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1030,7 +1030,7 @@ About the new airlock wires panel: if(locate(/mob/living) in get_turf(src)) // playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0) //THE BUZZING IT NEVER STOPS -Pete spawn (60) - close() + autoclose() return crush() diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index 72e0126433d..e37f2cae4ed 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -46,7 +46,7 @@ bulb = null power_change() - else if (istype(W, /obj/item/device/flash)) + else if (istype(W, /obj/item/device/flash/handheld)) if (!bulb) user.visible_message("[user] installs [W] into [src].", "You install [W] into [src].") user.drop_item() @@ -174,4 +174,4 @@ icon_state = "launcherbtt" active = 0 - return \ No newline at end of file + return diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index ec52a16ffb8..668f94b2327 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -110,8 +110,9 @@ wires.Interact(user) if(!open_panel) if(!active) - settings(user) - return + spawn() + settings(user) + return else if(anchored) user << "The bomb is bolted to the floor!" return @@ -205,10 +206,10 @@ /obj/item/weapon/bombcore/training/proc/reset() var/obj/machinery/syndicatebomb/holder = src.loc if(istype(holder)) - holder.open_panel = 0 if(holder.wires) holder.wires.Shuffle() holder.defused = 0 + holder.open_panel = 0 holder.update_icon() holder.updateDialog() diff --git a/code/game/objects/items/blueprints.dm b/code/game/objects/items/blueprints.dm index d84df606c75..908449350cf 100644 --- a/code/game/objects/items/blueprints.dm +++ b/code/game/objects/items/blueprints.dm @@ -1,9 +1,10 @@ -/obj/item/blueprints - name = "station blueprints" - desc = "Blueprints of the station. There is a \"Classified\" stamp and several coffee stains on it." +/obj/item/areaeditor + name = "area modification item" icon = 'icons/obj/items.dmi' icon_state = "blueprints" attack_verb = list("attacked", "bapped", "hit") + var/fluffnotice = "Nobody's gonna read this stuff!" + var/const/AREA_ERRNONE = 0 var/const/AREA_STATION = 1 var/const/AREA_SPACE = 2 @@ -19,67 +20,93 @@ var/const/ROOM_ERR_SPACE = -1 var/const/ROOM_ERR_TOOLARGE = -2 -/obj/item/blueprints/attack_self(mob/M as mob) - if (!istype(M,/mob/living/carbon/human)) - M << "This stack of blue paper means nothing to you." //monkeys cannot into projecting - return - interact() - return -/obj/item/blueprints/Topic(href, href_list) - ..() - if ((usr.restrained() || usr.stat || usr.get_active_hand() != src)) +/obj/item/areaeditor/attack_self(mob/user as mob) + add_fingerprint(user) + var/text = "[src] \ +

[station_name()] [src.name]

\ + [fluffnotice]
" + switch(get_area_type()) + if(AREA_SPACE) + text += "

According to the [src.name], you are now in outer space. Hold your breath.

\ +

Mark this place as new area.

" + if(AREA_SPECIAL) + text += "

This place is not noted on the [src.name].

" + return text + + +/obj/item/areaeditor/Topic(href, href_list) + if(..()) return - if (!href_list["action"]) - return - switch(href_list["action"]) - if ("create_area") - if (get_area_type()!=AREA_SPACE) - interact() - return + if(href_list["create_area"]) + if(get_area_type()==AREA_SPACE) create_area() - if ("edit_area") - if (get_area_type()!=AREA_STATION) - interact() - return - edit_area() + updateUsrDialog() -/obj/item/blueprints/interact() + +//One-use area creation permits. +/obj/item/areaeditor/permit + name = "construction permit" + icon_state = "permit" + desc = "This is a one-use permit that allows the user to offically declare a built room as new addition to the station." + fluffnotice = "Nanotrasen Engineering requires all on-station construction projects to be approved by a head of staff, as detailed in Nanotrasen Company Regulation 512-C (Mid-Shift Modifications to Company Property). \ + By submitting this form, you accept any fines, fees, or personal injury/death that may occur during construction." + + +/obj/item/areaeditor/permit/attack_self(mob/user as mob) + . = ..() var/area/A = get_area() - var/text = {"[src] -

[station_name()] blueprints

-Property of Nanotrasen. For heads of staff only. Store in high-secure storage.
-"} - switch (get_area_type()) - if (AREA_SPACE) - text += {" -

According to the blueprints, you are now in outer space. Hold your breath.

-

Mark this place as new area.

-"} - if (AREA_STATION) - text += {" -

According to the blueprints, you are now in \"[A.name]\".

-

You may -move an amendment to the drawing.

-"} - if (AREA_SPECIAL) - text += {" -

This place is not noted on the blueprint.

-"} - else - return - text += "" - usr << browse(text, "window=blueprints") + if(get_area_type() == AREA_STATION) + . += "

According to the [src], you are now in \"[A.name]\".

" + var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500) + popup.set_content(.) + popup.open() onclose(usr, "blueprints") -/obj/item/blueprints/proc/get_area() +/obj/item/areaeditor/permit/create_area() + ..() + qdel(src) + + +//Station blueprints!!! +/obj/item/areaeditor/blueprints + name = "station blueprints" + desc = "Blueprints of the station. There is a \"Classified\" stamp and several coffee stains on it." + icon = 'icons/obj/items.dmi' + icon_state = "blueprints" + fluffnotice = "Property of Nanotrasen. For heads of staff only. Store in high-secure storage." + + +/obj/item/areaeditor/blueprints/attack_self(mob/user as mob) + . = ..() + var/area/A = get_area() + if(get_area_type() == AREA_STATION) + . += "

According to the [src], you are now in \"[A.name]\".

" + . += "

You may move an amendment to the drawing.

" + var/datum/browser/popup = new(user, "blueprints", "[src]", 700, 500) + popup.set_content(.) + popup.open() + onclose(user, "blueprints") + + +/obj/item/areaeditor/blueprints/Topic(href, href_list) + ..() + if(href_list["edit_area"]) + if(get_area_type()!=AREA_STATION) + return + edit_area() + updateUsrDialog() + + +/obj/item/areaeditor/proc/get_area() var/turf/T = get_turf(usr) var/area/A = T.loc A = A.master return A -/obj/item/blueprints/proc/get_area_type(var/area/A = get_area()) + +/obj/item/areaeditor/proc/get_area_type(var/area/A = get_area()) if (istype(A,/area/space)) return AREA_SPACE var/list/SPECIALS = list( @@ -92,15 +119,14 @@ move an amendment to the drawing.

/area/syndicate_station, /area/wizard_station, /area/prison - // /area/derelict //commented out, all hail derelict-rebuilders! ) for (var/type in SPECIALS) if ( istype(A,type) ) return AREA_SPECIAL return AREA_STATION -/obj/item/blueprints/proc/create_area() - //world << "DEBUG: create_area" + +/obj/item/areaeditor/proc/create_area() var/res = detect_room(get_turf(usr)) if(!istype(res,/list)) switch(res) @@ -133,22 +159,16 @@ move an amendment to the drawing.

move_turfs_to_area(turfs, A) A.SetDynamicLighting() - spawn(5) - //ma = A.master ? "[A.master]" : "(null)" - //world << "DEBUG: create_area(5):
A.name=[A.name]
A.tag=[A.tag]
A.master=[ma]" - interact() + interact() return -/obj/item/blueprints/proc/move_turfs_to_area(var/list/turf/turfs, var/area/A) +/obj/item/areaeditor/proc/move_turfs_to_area(var/list/turf/turfs, var/area/A) A.contents.Add(turfs) - //oldarea.contents.Remove(usr.loc) // not needed - //T.loc = A //error: cannot change constant value -/obj/item/blueprints/proc/edit_area() +/obj/item/areaeditor/proc/edit_area() var/area/A = get_area() - //world << "DEBUG: edit_area" var/prevname = "[A.name]" var/str = trim(stripped_input(usr,"New area name:", "Blueprint Editing", prevname, MAX_NAME_LEN)) if(!str || !length(str) || str==prevname) //cancel @@ -164,8 +184,7 @@ move an amendment to the drawing.

return - -/obj/item/blueprints/proc/set_area_machinery_title(var/area/A,var/title,var/oldtitle) +/obj/item/areaeditor/proc/set_area_machinery_title(var/area/A,var/title,var/oldtitle) if (!oldtitle) // or replacetext goes to infinite loop return for(var/area/RA in A.related) @@ -181,7 +200,8 @@ move an amendment to the drawing.

M.name = replacetext(M.name,oldtitle,title) //TODO: much much more. Unnamed airlocks, cameras, etc. -/obj/item/blueprints/proc/check_tile_is_border(var/turf/T2,var/dir) + +/obj/item/areaeditor/proc/check_tile_is_border(var/turf/T2,var/dir) if (istype(T2, /turf/space)) return BORDER_SPACE //omg hull breach we all going to die here if (istype(T2, /turf/simulated/shuttle)) @@ -208,7 +228,8 @@ move an amendment to the drawing.

return BORDER_NONE -/obj/item/blueprints/proc/detect_room(var/turf/first) + +/obj/item/areaeditor/proc/detect_room(var/turf/first) var/list/turf/found = new var/list/turf/pending = list(first) while(pending.len) diff --git a/code/game/objects/items/devices/flash.dm b/code/game/objects/items/devices/flash.dm index 1c41c285f3e..48de883c68c 100644 --- a/code/game/objects/items/devices/flash.dm +++ b/code/game/objects/items/devices/flash.dm @@ -23,15 +23,15 @@ return 1 -/obj/item/device/flash/proc/burn_out(var/mob/user) //Made so you can override it if you want to have an invincible flash from R&D or something. +/obj/item/device/flash/proc/burn_out() //Made so you can override it if you want to have an invincible flash from R&D or something. broken = 1 icon_state = "[initial(icon_state)]burnt" - user.visible_message("The [src.name] burns out!") + visible_message("The [src.name] burns out!") /obj/item/device/flash/proc/flash_recharge(var/mob/user) if(prob(times_used * 2)) //if you use it 5 times in a minute it has a 10% chance to break! - burn_out(user) + burn_out() return 0 var/deciseconds_passed = world.time - last_used @@ -156,4 +156,6 @@ name = "memorizer" desc = "If you see this, you're not likely to remember it any time soon." icon_state = "memorizer" - item_state = "nullrod" \ No newline at end of file + item_state = "nullrod" + +/obj/item/device/flash/handheld //this is now the regular pocket flashes \ No newline at end of file diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index c765eff2eb3..26b79a0988c 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -20,6 +20,13 @@ keyslot1 = new /obj/item/device/encryptionkey/ recalculateChannels() +/obj/item/device/radio/headset/Destroy() + qdel(keyslot1) + qdel(keyslot2) + keyslot1 = null + keyslot2 = null + ..() + /obj/item/device/radio/headset/talk_into(mob/living/M as mob, message, channel) if (!listening) return diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index e41c84f971f..60b7a1d6c8e 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -50,7 +50,10 @@ initialize() /obj/item/device/radio/Destroy() - remove_radio_all(src) //Just to be sure. + qdel(wires) + wires = null + remove_radio_all(src) //Just to be sure + ..() /obj/item/device/radio/MouseDrop(obj/over_object as obj, src_location, over_location) var/mob/M = usr @@ -218,7 +221,7 @@ the signal gets processed and logged, and an audible transmission gets sent to each individual headset. */ - + /* be prepared to disregard any comments in all of tcomms code. i tried my best to keep them somewhat up-to-date, but eh */ diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index 3deee5d8cdc..e2ff15d79ef 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -331,8 +331,8 @@ /obj/item/robot_parts/head/attackby(obj/item/W as obj, mob/user as mob) ..() - if(istype(W, /obj/item/device/flash)) - var/obj/item/device/flash/F = W + if(istype(W, /obj/item/device/flash/handheld)) + var/obj/item/device/flash/handheld/F = W if(src.flash1 && src.flash2) user << "You have already inserted the eyes!" return diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index a273e6315fe..e4d8a1dc467 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -101,7 +101,7 @@ if(!C.handcuffed) playsound(loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) C.visible_message("[user] is trying to put zipties on [C]!", \ - "[user] is trying to put zipeties on [C]!") + "[user] is trying to put zipties on [C]!") if(do_mob(user, C, 30)) if(!C.handcuffed) C.handcuffed = new /obj/item/weapon/restraints/handcuffs/cable/zipties/used(C) diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index f17a2d7d7c7..6e7efa8bf50 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -112,7 +112,7 @@ /obj/item/weapon/grenade/flashbang, /obj/item/weapon/reagent_containers/spray/pepper, /obj/item/weapon/restraints/handcuffs, - /obj/item/device/flash, + /obj/item/device/flash/handheld, /obj/item/clothing/glasses, /obj/item/ammo_casing/shotgun, /obj/item/ammo_box, diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index c1df5f6766b..f47d382fe15 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -161,20 +161,6 @@ new /obj/item/weapon/dnainjector/m2h(src) new /obj/item/weapon/dnainjector/m2h(src) -/*/obj/item/weapon/storage/box/blanks //Blanks removed, go home - name = "box of blank shells" - desc = "It has a picture of a gun and several warning symbols on the front." - -/obj/item/weapon/storage/box/blanks/New() - ..() - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src) - new /obj/item/ammo_casing/shotgun/blank(src)*/ - /obj/item/weapon/storage/box/flashbangs name = "box of flashbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." @@ -197,12 +183,12 @@ /obj/item/weapon/storage/box/flashes/New() ..() - new /obj/item/device/flash(src) - new /obj/item/device/flash(src) - new /obj/item/device/flash(src) - new /obj/item/device/flash(src) - new /obj/item/device/flash(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) + new /obj/item/device/flash/handheld(src) + new /obj/item/device/flash/handheld(src) + new /obj/item/device/flash/handheld(src) + new /obj/item/device/flash/handheld(src) + new /obj/item/device/flash/handheld(src) /obj/item/weapon/storage/box/teargas name = "box of tear gas grenades (WARNING)" @@ -358,6 +344,19 @@ for(var/i = 1; i <= 5; i++) new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) + +/obj/item/weapon/storage/box/permits + name = "box of construction permits" + desc = "A box for containing construction permits, used to officially declare built rooms as additions to the station." + icon_state = "id" + +/obj/item/weapon/storage/box/permits/New() //There's only a few, so blueprints are still useful beyond setting every room's name to PRIMARY FART STORAGE + ..() + new /obj/item/areaeditor/permit(src) + new /obj/item/areaeditor/permit(src) + new /obj/item/areaeditor/permit(src) + + /obj/item/weapon/storage/box/ids name = "box of spare IDs" desc = "Has so many empty IDs." diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 649111df7cf..13e18c8e65b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -16,7 +16,8 @@ new /obj/item/weapon/storage/backpack/industrial(src) else new /obj/item/weapon/storage/backpack/satchel_eng(src) - new /obj/item/blueprints(src) + new /obj/item/areaeditor/blueprints(src) + new /obj/item/weapon/storage/box/permits(src) new /obj/item/clothing/under/rank/chief_engineer(src) new /obj/item/clothing/head/hardhat/white(src) new /obj/item/clothing/head/welding(src) @@ -29,7 +30,7 @@ new /obj/item/weapon/airlock_painter(src) new /obj/item/clothing/mask/gas(src) new /obj/item/device/multitool(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) return /obj/structure/closet/secure_closet/engineering_electrical diff --git a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm index 896b0408417..5bf51ea6e1e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/medical.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/medical.dm @@ -120,7 +120,7 @@ new /obj/item/clothing/shoes/sneakers/brown (src) new /obj/item/device/radio/headset/heads/cmo(src) new /obj/item/weapon/storage/belt/medical(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/weapon/reagent_containers/hypospray/CMO(src) return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm index 9b0cef34c99..40a861b0c4b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/scientist.dm @@ -46,7 +46,7 @@ new /obj/item/weapon/tank/air(src) new /obj/item/clothing/mask/gas(src) new /obj/item/clothing/suit/armor/reactive(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/device/laser_pointer(src) new /obj/item/clothing/under/rank/research_director/alt(src) return diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 1b522da3be6..98dc42df1f0 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -49,7 +49,7 @@ new /obj/item/weapon/storage/box/ids(src) new /obj/item/clothing/suit/armor/vest(src) new /obj/item/weapon/gun/energy/gun(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/weapon/mining_voucher(src) return @@ -79,7 +79,7 @@ new /obj/item/weapon/shield/riot/tele(src) new /obj/item/clothing/mask/gas/sechailer/hos(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/gun/energy/gun(src) new /obj/item/weapon/storage/belt/security(src) @@ -134,7 +134,7 @@ new /obj/item/clothing/head/helmet(src) new /obj/item/device/radio/headset/headset_sec/alt(src) new /obj/item/clothing/mask/gas/sechailer(src) - new /obj/item/device/flash(src) + new /obj/item/device/flash/handheld(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/grenade/flashbang(src) new /obj/item/weapon/gun/energy/taser(src) @@ -247,7 +247,7 @@ var/id = null /obj/structure/closet/secure_closet/brig/New() - new /obj/item/clothing/under/color/orange( src ) + new /obj/item/clothing/under/rank/prisoner( src ) new /obj/item/clothing/shoes/sneakers/orange( src ) return diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 628d4d63484..b3df16856cb 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -126,9 +126,9 @@ icon_closed = "orange" /obj/structure/closet/wardrobe/orange/New() - new /obj/item/clothing/under/color/orange(src) - new /obj/item/clothing/under/color/orange(src) - new /obj/item/clothing/under/color/orange(src) + new /obj/item/clothing/under/rank/prisoner(src) + new /obj/item/clothing/under/rank/prisoner(src) + new /obj/item/clothing/under/rank/prisoner(src) new /obj/item/clothing/shoes/sneakers/orange(src) new /obj/item/clothing/shoes/sneakers/orange(src) new /obj/item/clothing/shoes/sneakers/orange(src) diff --git a/code/game/objects/structures/transit_tubes/station.dm b/code/game/objects/structures/transit_tubes/station.dm index 1f75c11e42b..553f8f8aead 100644 --- a/code/game/objects/structures/transit_tubes/station.dm +++ b/code/game/objects/structures/transit_tubes/station.dm @@ -6,12 +6,11 @@ name = "station tube station" icon = 'icons/obj/pipes/transit_tube_station.dmi' icon_state = "closed" - exit_delay = 2 - enter_delay = 3 + exit_delay = 1 + enter_delay = 2 tube_construction = /obj/structure/c_transit_tube/station var/pod_moving = 0 - var/automatic_launch_time = 100 - var/cooldown_delay = 200 + var/cooldown_delay = 50 var/launch_cooldown = 0 var/reverse_launch = 0 @@ -67,7 +66,7 @@ else if(icon_state == "open") if(pod.contents.len && user.loc != pod) user.visible_message("[user] starts emptying [pod]'s contents onto the floor!") - if(do_after(user, 40)) //So it doesn't default to close_animation() on fail + if(do_after(user, 10)) //So it doesn't default to close_animation() on fail if(pod.loc == loc) for(var/atom/movable/AM in pod) AM.loc = get_turf(user) @@ -87,7 +86,7 @@ var/mob/GM = G.affecting for(var/obj/structure/transit_tube_pod/pod in loc) pod.visible_message("[user] starts putting [GM] into the [pod]!") - if(do_after(user, 60) && GM && G && G.affecting == GM) + if(do_after(user, 15) && GM && G && G.affecting == GM) GM.Weaken(5) src.Bumped(GM) qdel(G) diff --git a/code/game/objects/structures/transit_tubes/transit_tube.dm b/code/game/objects/structures/transit_tubes/transit_tube.dm index 152820d77dc..a170353f1ce 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube.dm @@ -10,8 +10,8 @@ anchored = 1.0 var/tube_construction = /obj/structure/c_transit_tube var/list/tube_dirs = null - var/exit_delay = 2 - var/enter_delay = 1 + var/exit_delay = 1 + var/enter_delay = 0 // alldirs in global.dm is the same list of directions, but since // the specific order matters to get a usable icon_state, it is @@ -51,7 +51,7 @@ obj/structure/transit_tube/ex_act(severity) /obj/structure/transit_tube/attackby(obj/item/W, mob/user) if(istype(W, /obj/item/weapon/wrench)) if(copytext(icon_state, 1, 3) != "D-") //decorative diagonals cannot be unwrenched directly - for(var/obj/structure/transit_tube_pod/pod in loc) + for(var/obj/structure/transit_tube_pod/pod in src.loc) user << "Remove the pod first." return user.visible_message("[user] starts to deattach the [src]!", "You start deattaching the [name]...") @@ -64,6 +64,9 @@ obj/structure/transit_tube/ex_act(severity) R.add_fingerprint(user) src.destroy_diagonals() qdel(src) + if(istype(W, /obj/item/weapon/crowbar)) + for(var/obj/structure/transit_tube_pod/pod in src.loc) + pod.attackby(W, user) //destroys disconnected decorative diagonals /obj/structure/transit_tube/proc/destroy_diagonals() diff --git a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm index 0f3fbc65760..ed395cc19e5 100644 --- a/code/game/objects/structures/transit_tubes/transit_tube_pod.dm +++ b/code/game/objects/structures/transit_tubes/transit_tube_pod.dm @@ -32,8 +32,7 @@ return if(src.contents.len) user.visible_message("[user] empties the [src].", "You empty the [src].") - for(var/atom/movable/M in src.contents) - M.loc = src.loc + src.empty() return else user << "You free the [src]." @@ -42,6 +41,20 @@ R.add_fingerprint(user) qdel(src) +/obj/structure/transit_tube_pod/container_resist() + var/mob/living/user = usr + if(!moving) + user.changeNext_move(CLICK_CD_BREAKOUT) + user.last_special = world.time + CLICK_CD_BREAKOUT + user << "You start trying to escape from the pod." + if(do_after(user, 600)) + user << "You manage to open the pod." + src.empty() + +/obj/structure/transit_tube_pod/proc/empty() + for(var/atom/movable/M in src.contents) + M.loc = src.loc + /obj/structure/transit_tube_pod/proc/follow_tube(var/reverse_launch) if(moving) return diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index fbacb60a169..3fe024e44e8 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -20,7 +20,7 @@ item_state = "bio_suit" body_parts_covered = CHEST|GROIN|LEGS|ARMS flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen) + allowed = list(/obj/item/weapon/disk, /obj/item/weapon/stamp, /obj/item/weapon/reagent_containers/food/drinks/flask, /obj/item/weapon/melee, /obj/item/weapon/storage/lockbox/medal, /obj/item/device/flash/handheld, /obj/item/weapon/storage/box/matches, /obj/item/weapon/lighter, /obj/item/clothing/mask/cigarette, /obj/item/weapon/storage/fancy/cigarettes, /obj/item/weapon/tank/emergency_oxygen) //Chaplain /obj/item/clothing/suit/chaplain_hoodie diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 41cd26d250e..0fa1779d52f 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -1,17 +1,26 @@ +/obj/item/clothing/under/color + desc = "A standard issue colored jumpsuit. Variety is the spice of life!" + +/obj/item/clothing/under/color/random/New() + var/list/excluded = list(/obj/item/clothing/under/color/random, /obj/item/clothing/under/color) + var/obj/item/clothing/under/color/C = pick(typesof(/obj/item/clothing/under/color) - excluded) + name = initial(C.name) + icon_state = initial(C.icon_state) + item_state = initial(C.item_state) + item_color = initial(C.item_color) + + /obj/item/clothing/under/color/black name = "black jumpsuit" icon_state = "black" item_state = "bl_suit" item_color = "black" -/obj/item/clothing/under/color/blackf - name = "feminine black jumpsuit" - desc = "It's very smart and in a ladies-size!" - icon_state = "black" - item_state = "bl_suit" - item_color = "blackf" - fitted = 0 - can_adjust = 0 +/obj/item/clothing/under/color/grey + name = "grey jumpsuit" + icon_state = "grey" + item_state = "gy_suit" + item_color = "grey" /obj/item/clothing/under/color/blue name = "blue jumpsuit" @@ -25,20 +34,12 @@ item_state = "g_suit" item_color = "green" -/obj/item/clothing/under/color/grey - name = "grey jumpsuit" - icon_state = "grey" - item_state = "gy_suit" - item_color = "grey" - /obj/item/clothing/under/color/orange name = "orange jumpsuit" - desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + desc = "Don't wear this near paranoid security officers." icon_state = "orange" item_state = "o_suit" item_color = "orange" - has_sensor = 2 - sensor_mode = 3 /obj/item/clothing/under/color/pink name = "pink jumpsuit" @@ -64,81 +65,78 @@ item_state = "y_suit" item_color = "yellow" -/obj/item/clothing/under/color/psyche - name = "psychedelic jumpsuit" - desc = "Groovy!" - icon_state = "psyche" - item_color = "psyche" - /obj/item/clothing/under/color/lightblue name = "lightblue jumpsuit" - desc = "lightblue" icon_state = "lightblue" + item_state = "b_suit" item_color = "lightblue" /obj/item/clothing/under/color/aqua name = "aqua jumpsuit" - desc = "aqua" icon_state = "aqua" + item_state = "b_suit" item_color = "aqua" /obj/item/clothing/under/color/purple name = "purple jumpsuit" - desc = "purple" icon_state = "purple" item_state = "p_suit" item_color = "purple" /obj/item/clothing/under/color/lightpurple name = "lightpurple jumpsuit" - desc = "lightpurple" icon_state = "lightpurple" + item_state = "p_suit" item_color = "lightpurple" /obj/item/clothing/under/color/lightgreen name = "lightgreen jumpsuit" - desc = "lightgreen" icon_state = "lightgreen" + item_state = "g_suit" item_color = "lightgreen" /obj/item/clothing/under/color/lightblue name = "lightblue jumpsuit" - desc = "lightblue" icon_state = "lightblue" + item_state = "b_suit" item_color = "lightblue" /obj/item/clothing/under/color/lightbrown name = "lightbrown jumpsuit" - desc = "lightbrown" icon_state = "lightbrown" item_color = "lightbrown" /obj/item/clothing/under/color/brown name = "brown jumpsuit" - desc = "brown" icon_state = "brown" item_color = "brown" /obj/item/clothing/under/color/yellowgreen name = "yellowgreen jumpsuit" - desc = "yellowgreen" icon_state = "yellowgreen" + item_state = "y_suit" item_color = "yellowgreen" /obj/item/clothing/under/color/darkblue name = "darkblue jumpsuit" - desc = "darkblue" icon_state = "darkblue" + item_state = "b_suit" item_color = "darkblue" /obj/item/clothing/under/color/lightred name = "lightred jumpsuit" - desc = "lightred" icon_state = "lightred" + item_state = "r_suit" item_color = "lightred" /obj/item/clothing/under/color/darkred name = "darkred jumpsuit" - desc = "darkred" icon_state = "darkred" - item_color = "darkred" \ No newline at end of file + item_state = "r_suit" + item_color = "darkred" + +/obj/item/clothing/under/color/maroon + name = "maroon jumpsuit" + icon_state = "maroon" + item_state = "r_suit" + item_color = "maroon" \ No newline at end of file diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index cd904b67418..5e76a853eac 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -46,6 +46,15 @@ item_color = "waiter" can_adjust = 0 +/obj/item/clothing/under/rank/prisoner + name = "prison jumpsuit" + desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + icon_state = "prisoner" + item_state = "o_suit" + item_color = "prisoner" + has_sensor = 2 + sensor_mode = 3 + /obj/item/clothing/under/rank/mailman name = "mailman's jumpsuit" desc = "'Special delivery!'" @@ -53,6 +62,13 @@ item_state = "b_suit" item_color = "mailman" +/obj/item/clothing/under/rank/psyche + name = "psychedelic jumpsuit" + desc = "Groovy!" + icon_state = "psyche" + item_state = "p_suit" + item_color = "psyche" + /obj/item/clothing/under/sexyclown name = "sexy-clown suit" desc = "It makes you look HONKable!" diff --git a/code/modules/events/ninja.dm b/code/modules/events/ninja.dm index 3c7db7f4461..540741dcc32 100644 --- a/code/modules/events/ninja.dm +++ b/code/modules/events/ninja.dm @@ -365,10 +365,7 @@ ________________________________________________________________________________ var/obj/item/device/radio/R = new /obj/item/device/radio/headset(src) equip_to_slot_or_del(R, slot_ears) - if(gender==FEMALE) - equip_to_slot_or_del(new /obj/item/clothing/under/color/blackf(src), slot_w_uniform) - else - equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform) + equip_to_slot_or_del(new /obj/item/clothing/under/color/black(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/shoes/space_ninja(src), slot_shoes) equip_to_slot_or_del(new /obj/item/clothing/suit/space/space_ninja(src), slot_wear_suit) equip_to_slot_or_del(new /obj/item/clothing/gloves/space_ninja(src), slot_gloves) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 6f6700f9624..c7207e99bb8 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -349,7 +349,7 @@ var/list/non_fakeattack_weapons = list(/obj/item/weapon/gun/projectile, /obj/ite /obj/item/toy/syndicateballoon, /obj/item/weapon/gun/energy/laser/captain,\ /obj/item/weapon/hand_tele, /obj/item/weapon/rcd, /obj/item/weapon/tank/jetpack,\ /obj/item/clothing/under/rank/captain, /obj/item/device/aicard,\ - /obj/item/clothing/shoes/magboots, /obj/item/blueprints, /obj/item/weapon/disk/nuclear,\ + /obj/item/clothing/shoes/magboots, /obj/item/areaeditor/blueprints, /obj/item/weapon/disk/nuclear,\ /obj/item/clothing/suit/space/nasavoid, /obj/item/weapon/tank) /proc/fake_attack(var/mob/living/target) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index e3b5391b59f..0ae9d2fea75 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -750,6 +750,23 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice() qdel(src) return +/obj/item/weapon/reagent_containers/food/snacks/grown/carpet + seed = /obj/item/seeds/carpetseed + name = "carpet" + desc = "The textile industry's dark secret." + icon_state = "carpetclump" + +/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/attack_self(mob/user as mob) + user << "You roll out the red carpet." + var/location = get_turf(user) + var/carpetAmt = 1 + round(potency / 50) // The carpet we're holding + for(var/obj/item/weapon/reagent_containers/food/snacks/grown/carpet/carpetToConvert in location) // The carpet on the floor + carpetAmt += 1 + qdel(carpetToConvert) + var/obj/item/stack/tile/newAstroturf = new /obj/item/stack/tile/carpet(location) + newAstroturf.amount = carpetAmt + qdel(src) + /obj/item/weapon/reagent_containers/food/snacks/grown/kudzupod seed = /obj/item/seeds/kudzuseed name = "kudzu pod" diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 44347c4a399..1f34b8fd6d9 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -1013,6 +1013,23 @@ potency = 10 plant_type = 0 growthstages = 2 + mutatelist = list(/obj/item/seeds/carpetseed) + +/obj/item/seeds/carpetseed + name = "pack of carpet seeds" + desc = "These seeds grow into stylish carpet samples." + icon_state = "seed-carpet" + species = "carpet" + plantname = "Carpet" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/carpet + lifespan = 40 + endurance = 40 + maturation = 2 + production = 5 + yield = 5 + potency = 10 + plant_type = 0 + growthstages = 2 /obj/item/seeds/cocoapodseed name = "pack of cocoa pod seeds" diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index cae772dd6bf..d2845a672ed 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -30,7 +30,7 @@ var/fire_alert = 0 var/heat_protection = 0.5 - + var/leaping = 0 /mob/living/carbon/alien/New() verbs += /mob/living/proc/mob_sleep diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index be54c36fe0a..dcbcba1ded8 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -8,7 +8,6 @@ icon_state = "alienh_s" plasma_rate = 5 - /mob/living/carbon/alien/humanoid/hunter/New() create_reagents(100) if(name == "alien hunter") @@ -50,26 +49,105 @@ //Hunter verbs -/* -/mob/living/carbon/alien/humanoid/hunter/verb/invis() - set name = "Invisibility (50)" - set desc = "Makes you invisible for 15 seconds" - set category = "Alien" - if(alien_invis) - update_icons() +/mob/living/carbon/alien/humanoid/hunter/proc/toggle_leap() + leap_on_click = !leap_on_click + leap_icon.icon_state = "leap_[leap_on_click ? "on":"off"]" + src << "You will now [leap_on_click ? "leap at":"slash at"] enemies!" + +/mob/living/carbon/alien/humanoid/hunter/ClickOn(var/atom/A, var/params) + face_atom(A) + if(leap_on_click) + leap_at(A) else - if(powerc(50)) - adjustToxLoss(-50) - alien_invis = 1.0 - update_icons() - src << "\green You are now invisible." - for(var/mob/O in oviewers(src, null)) - O.show_message(text("\red [src] fades into the surroundings!"), 1) - spawn(250) - if(!isnull(src))//Don't want the game to runtime error when the mob no-longer exists. - alien_invis = 0.0 - update_icons() - src << "\green You are no longer invisible." - return -*/ \ No newline at end of file + ..() + + +#define MAX_ALIEN_LEAP_DIST 7 + +/mob/living/carbon/alien/humanoid/hunter/proc/leap_at(var/atom/A) + if(leaping) //Leap while you leap, so you can leap while you leap + return + + if(!has_gravity(src) || !has_gravity(A)) + src << "It is unsafe to leap without gravity!" + //It's also extremely buggy visually, so it's balance+bugfix + return + if(lying) + return + + leaping = 1 + update_icons() + throw_at(A,MAX_ALIEN_LEAP_DIST,1) + leaping = 0 + update_icons() + +/mob/living/carbon/alien/humanoid/throw_impact(A) + var/msg = "" + + if(A) + if(istype(A, /mob/living)) + var/mob/living/L = A + msg = "[src] pounces on [A]!" + L.Weaken(5) + sleep(2)//Runtime prevention (infinite bump() calls on hulks) + step_towards(src,L) + else + msg = "[src] smashes into [A]!" + weakened = 2 + + if(leaping) + leaping = 0 + update_canmove() + visible_message(msg) + + +/mob/living/carbon/alien/humanoid/float(on) + if(leaping) + return + ..() + + +//Modified throw_at() that will use diagonal dirs where appropriate +//instead of locking it to cardinal dirs +/mob/living/carbon/alien/humanoid/throw_at(atom/target, range, speed) + if(!target || !src || (flags & NODROP)) return 0 + + src.throwing = 1 + + var/dist_x = abs(target.x - src.x) + var/dist_y = abs(target.y - src.y) + var/dist_travelled = 0 + var/dist_since_sleep = 0 + + var/tdist_x = dist_x; + var/tdist_y = dist_y; + + if(dist_x <= dist_y) + tdist_x = dist_y; + tdist_y = dist_x; + + var/error = tdist_x/2 - tdist_y + while(target && (((((dist_x > dist_y) && ((src.x < target.x) || (src.x > target.x))) || ((dist_x <= dist_y) && ((src.y < target.y) || (src.y > target.y))) || (src.x > target.x)) && dist_travelled < range) || !has_gravity(src))) + + if(!src.throwing) break + if(!istype(src.loc, /turf)) break + + var/atom/step = get_step(src, get_dir(src,target)) + if(!step) + break + src.Move(step) + hit_check() + error += (error < 0) ? tdist_x : -tdist_y; + dist_travelled++ + dist_since_sleep++ + if(dist_since_sleep >= speed) + dist_since_sleep = 0 + sleep(1) + + + src.throwing = 0 + if(isobj(src)) + src.throw_impact(get_turf(src)) + + return 1 diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 76b3fcffe04..7c50ccf0dc8 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -4,6 +4,7 @@ var/obj/item/r_store = null var/obj/item/l_store = null var/caste = "" + var/leap_on_click = 0 update_icon = 1 //This is fine right now, if we're adding organ specific damage this needs to be updated diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 424f9a1bb52..bac29e13a76 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -365,6 +365,8 @@ if(weakened) weakened = max(weakened-1,0) + if(!weakened) + update_icons() if(stuttering) stuttering = max(stuttering-1, 0) diff --git a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm index 927e1bd52d5..acdb6e25ebe 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/update_icons.dm @@ -14,6 +14,7 @@ for(var/image/I in overlays_standing) overlays += I + if(stat == DEAD) //If we mostly took damage from fire if(fireloss > 125) @@ -22,9 +23,13 @@ else icon_state = "alien[caste]_dead" pixel_y = 0 - else if(stat == UNCONSCIOUS) + + else if(stat == UNCONSCIOUS || weakened) icon_state = "alien[caste]_unconscious" pixel_y = 0 + else if(leap_on_click) + icon_state = "alien[caste]_pounce" + else if(lying || resting) icon_state = "alien[caste]_sleep" else if(m_intent == "run") @@ -32,6 +37,18 @@ else icon_state = "alien[caste]_s" + if(leaping) + icon = 'icons/mob/alienleap.dmi' + icon_state = "alien[caste]_leap" + pixel_x = -32 + pixel_y = -32 + else + icon = initial(icon) + pixel_x = initial(pixel_x) + pixel_y = initial(pixel_y) + + + /mob/living/carbon/alien/humanoid/regenerate_icons() ..() if (notransform) return diff --git a/code/modules/mob/living/simple_animal/friendly/drone.dm b/code/modules/mob/living/simple_animal/friendly/drone.dm index a1ac622b9aa..7883cb6fe8d 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone.dm @@ -494,6 +494,10 @@ else mode() +/mob/living/simple_animal/drone/assess_threat() //Secbots won't hunt maintenance drones. + return -10 + + #undef HANDS_LAYER #undef HEAD_LAYER #undef TOTAL_LAYERS diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 603d3228b8b..cd9d0a0f0e0 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -30,6 +30,7 @@ Changing this around would probably require a good look-over the pre-existing code. */ var/obj/screen/zone_sel/zone_sel = null + var/obj/screen/leap_icon = null var/damageoverlaytemp = 0 var/computer_id = null diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index b383e9e4555..a0c5049aa11 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -671,6 +671,15 @@ icon_state = "female_kinky" gender = FEMALE +/datum/sprite_accessory/underwear/female_whitealt + name = "Ladies White Sport" + icon_state = "female_whitealt" + gender = FEMALE + +/datum/sprite_accessory/underwear/female_blackalt + name = "Ladies Black Sport" + icon_state = "female_blackalt" + gender = FEMALE //////////////////////////// // Undershirt Definitions // diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 1586b5c6ae5..0f95787f418 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -186,7 +186,7 @@ res.Blend(img, blendMode2iconMode(A.blend_mode), offX, offY) - if(istype(A, /obj/item/blueprints)) + if(istype(A, /obj/item/areaeditor/blueprints)) blueprints = 1 for(var/turf/T in turfs) @@ -426,4 +426,4 @@ obj/item/device/camera/siliconcam/robot_camera/proc/borgprint() p.pixel_y = rand(-10, 10) C.toner -= 20 //Cyborgs are very ineffeicient at printing an image visible_message("[C.name] spits out a photograph from a narrow slot on it's chassis.") - usr << "You print a photograph." + usr << "You print a photograph." diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index c61911529ba..3f05446bf84 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -67,6 +67,14 @@ max_ammo = 1 multiload = 0 +/obj/item/ammo_box/magazine/internal/shotriot + name = "riot shotgun internal magazine" + desc = "Oh god, this shouldn't be here" + ammo_type = /obj/item/ammo_casing/shotgun/beanbag + caliber = "shotgun" + max_ammo = 6 + multiload = 0 + ///////////EXTERNAL MAGAZINES//////////////// /obj/item/ammo_box/magazine/m9mm name = "handgun magazine (9mm)" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 60b5aa7394e..b315a227b17 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -60,6 +60,12 @@ mag_type = /obj/item/ammo_box/magazine/internal/shotcom w_class = 5 +/obj/item/weapon/gun/projectile/shotgun/riot //for spawn in the armory + name = "riot shotgun" + desc = "A sturdy shotgun with a longer magazine and a fixed tactical stock designed for non-lethal riot control." + icon_state = "riotshotgun" + mag_type = /obj/item/ammo_box/magazine/internal/shotriot + /obj/item/weapon/gun/projectile/revolver/doublebarrel name = "double-barreled shotgun" desc = "A true classic." diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index c2e2ebf5e6a..8d9fabe0630 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -52,7 +52,7 @@ datum/design/synthetic_flash build_type = MECHFAB materials = list("$metal" = 750, "$glass" = 750) reliability = 76 - build_path = /obj/item/device/flash/ + build_path = /obj/item/device/flash/handheld category = "Misc" datum/design/bluespacebeaker diff --git a/html/changelogs/Jordie0608-PR-5231.yml b/html/changelogs/Jordie0608-PR-5231.yml new file mode 100644 index 00000000000..037185af189 --- /dev/null +++ b/html/changelogs/Jordie0608-PR-5231.yml @@ -0,0 +1,6 @@ +author: Jordie0608 + +delete-after: True + +changes: + - rscadd: Adds a new riot shotgun that spawns in the armory with a 6 round beanbag magazine. \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5202.yml b/html/changelogs/Paprka-PR-5202.yml new file mode 100644 index 00000000000..fa15d19cf93 --- /dev/null +++ b/html/changelogs/Paprka-PR-5202.yml @@ -0,0 +1,5 @@ +author: Paprika +delete-after: True +changes: + - rscadd: "Added a second roboticist roundstart job slot." + - rscadd: "Added a third cargo tech job slot." diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index 00774ecd072..9c23d4383cc 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/alienleap.dmi b/icons/mob/alienleap.dmi new file mode 100644 index 00000000000..d6e86196148 Binary files /dev/null and b/icons/mob/alienleap.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index a54f41d49c9..b06f7b07a95 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 36882e647f3..5f0013f1400 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/screen_alien.dmi b/icons/mob/screen_alien.dmi index 8d58cdba6c8..3674b2bf163 100644 Binary files a/icons/mob/screen_alien.dmi and b/icons/mob/screen_alien.dmi differ diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index 08bd7a76910..6a16f7002c2 100644 Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 29ed6634d8e..57ad7dd6d01 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 5a2d9dcac64..bc49b0c5372 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 4545cf245bc..2556918d24b 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 5569606930c..e10e9746760 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/harvest.dmi b/icons/obj/harvest.dmi index 090fa968324..db6cd7e0573 100644 Binary files a/icons/obj/harvest.dmi and b/icons/obj/harvest.dmi differ diff --git a/icons/obj/hydroponics.dmi b/icons/obj/hydroponics.dmi index 6659b6ca513..c2dbcb6501f 100644 Binary files a/icons/obj/hydroponics.dmi and b/icons/obj/hydroponics.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index d28179ba5df..7c4e43a241c 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/seeds.dmi b/icons/obj/seeds.dmi index 89c32b9b727..89bd1ef0807 100644 Binary files a/icons/obj/seeds.dmi and b/icons/obj/seeds.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index b6789863ebc..ff07bda85f6 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi index 6d65684a300..b4a89332495 100644 Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ