diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 3bda4bcd67f..9eeb41803f2 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -13401,13 +13401,6 @@ /area/crew_quarters/bar) "aEZ" = ( /obj/structure/table/wood, -/obj/item/storage/fancy/cigarettes/cigars{ - pixel_y = 6 - }, -/obj/item/storage/fancy/cigarettes/cigars/cohiba{ - pixel_y = 3 - }, -/obj/item/storage/fancy/cigarettes/cigars/havana, /obj/item/radio/intercom{ pixel_y = 26 }, @@ -13421,6 +13414,14 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/item/storage/photo_album/bar{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 3 + }, /turf/open/floor/plasteel/dark, /area/crew_quarters/bar) "aFa" = ( @@ -17199,7 +17200,6 @@ /turf/open/floor/plating, /area/security/prison) "aMf" = ( -/obj/structure/easel, /obj/machinery/computer/security/telescreen/entertainment{ pixel_y = 32 }, @@ -17207,11 +17207,18 @@ /obj/machinery/light/small{ dir = 1 }, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/table, +/obj/item/storage/photo_album/prison{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/camera{ + pixel_x = -2; + pixel_y = -2 + }, /turf/open/floor/plasteel, /area/security/prison) "aMg" = ( @@ -64898,10 +64905,10 @@ /area/library) "cqQ" = ( /obj/structure/table/wood, -/obj/item/storage/briefcase, /obj/structure/window/reinforced{ dir = 8 }, +/obj/item/storage/photo_album/library, /turf/open/floor/plasteel/grimy, /area/library) "cqR" = ( @@ -113705,8 +113712,7 @@ /area/chapel/office) "efZ" = ( /obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/pen, +/obj/item/storage/photo_album/chapel, /turf/open/floor/plasteel/grimy, /area/chapel/office) "ega" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 169a4a75411..7a9253b2ab6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -456,10 +456,15 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "abj" = ( -/obj/structure/easel, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, /obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/storage/photo_album/prison{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/camera{ + pixel_x = -4 + }, /turf/open/floor/plasteel, /area/security/prison) "abk" = ( @@ -771,6 +776,7 @@ dir = 1 }, /obj/structure/table/reinforced, +/obj/item/storage/photo_album/bar, /turf/open/floor/plasteel, /area/crew_quarters/bar) "abV" = ( @@ -65640,14 +65646,10 @@ /turf/open/floor/plasteel/grimy, /area/chapel/office) "cMG" = ( -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 8 - }, -/obj/item/pen, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/table/wood, /obj/structure/cable, +/obj/item/storage/photo_album/chapel, /turf/open/floor/plasteel/grimy, /area/chapel/office) "cMH" = ( @@ -74657,7 +74659,7 @@ /area/vacant_room/commissary) "qLf" = ( /obj/structure/table/wood, -/obj/item/storage/photo_album, +/obj/item/storage/photo_album/library, /turf/open/floor/engine/cult, /area/library) "rbG" = ( diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 09ff4eae9d6..e443cac4dc9 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -17415,6 +17415,17 @@ }, /turf/open/floor/plasteel/white, /area/centcom/holding) +"Qd" = ( +/obj/structure/table/wood, +/obj/item/storage/photo_album/syndicate{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/camera{ + pixel_x = -2 + }, +/turf/open/floor/wood, +/area/syndicate_mothership/control) "Qe" = ( /turf/open/ai_visible, /area/ai_multicam_room) @@ -36553,7 +36564,7 @@ sg tf pZ rf -vv +vx wn tQ ng @@ -36810,7 +36821,7 @@ sh sh pZ pZ -vx +Qd wo tZ ng diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 26626a08874..4e18d669497 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -122,7 +122,7 @@ /datum/quirk/photographer name = "Photographer" - desc = "You know how to handle a camera, shortening the delay between each shot." + desc = "You carry your camera and personal photo album everywhere you go and can snap photos faster." value = 1 mob_trait = TRAIT_PHOTOGRAPHER gain_text = "You know everything about photography." @@ -131,9 +131,24 @@ /datum/quirk/photographer/on_spawn() var/mob/living/carbon/human/H = quirk_holder + var/obj/item/storage/photo_album/photo_album = new(get_turf(H)) + var/list/album_slots = list ( + "backpack" = SLOT_IN_BACKPACK, + "hands" = SLOT_HANDS + ) + H.equip_in_one_of_slots(photo_album, album_slots , qdel_on_fail = TRUE) + photo_album.persistence_id = "personal_[H.mind.key]" // this is a persistent album, the ID is tied to the account's key to avoid tampering + photo_album.persistence_load() + photo_album.name = "\improper [H.real_name]'s photo album" var/obj/item/camera/camera = new(get_turf(H)) - H.put_in_hands(camera) - H.equip_to_slot(camera, SLOT_NECK) + var/list/camera_slots = list ( + "neck" = SLOT_NECK, + "left pocket" = SLOT_L_STORE, + "right pocket" = SLOT_R_STORE, + "backpack" = SLOT_IN_BACKPACK, + "hands" = SLOT_HANDS + ) + H.equip_in_one_of_slots(camera, camera_slots , qdel_on_fail = TRUE) H.regenerate_icons() /datum/quirk/selfaware diff --git a/code/modules/photography/_pictures.dm b/code/modules/photography/_pictures.dm index e0a31f1abcc..d592a5066e8 100644 --- a/code/modules/photography/_pictures.dm +++ b/code/modules/photography/_pictures.dm @@ -82,7 +82,7 @@ /proc/load_photo_from_disk(id, location) var/datum/picture/P = load_picture_from_disk(id) if(istype(P)) - var/obj/item/photo/p = new(location, P) + var/obj/item/photo/old/p = new(location, P) return p /proc/load_picture_from_disk(id) diff --git a/code/modules/photography/camera/camera.dm b/code/modules/photography/camera/camera.dm index 43f32ea927b..281651252c1 100644 --- a/code/modules/photography/camera/camera.dm +++ b/code/modules/photography/camera/camera.dm @@ -15,6 +15,7 @@ flags_1 = CONDUCT_1 slot_flags = ITEM_SLOT_NECK materials = list(/datum/material/iron = 50, /datum/material/glass = 150) + custom_price = 80 var/flash_enabled = TRUE var/state_on = "camera" var/state_off = "camera_off" diff --git a/code/modules/photography/photos/album.dm b/code/modules/photography/photos/album.dm index 129c8371661..3b5a2060bb5 100644 --- a/code/modules/photography/photos/album.dm +++ b/code/modules/photography/photos/album.dm @@ -3,6 +3,7 @@ */ /obj/item/storage/photo_album name = "photo album" + desc = "A big book used to store photos and mementos." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "album" item_state = "briefcase" @@ -48,28 +49,55 @@ for(var/i in ids) if(i in current_ids) continue - var/obj/item/photo/P = load_photo_from_disk(i) + var/obj/item/photo/old/P = load_photo_from_disk(i) if(istype(P)) if(!SEND_SIGNAL(src, COMSIG_TRY_STORAGE_INSERT, P, null, TRUE, TRUE)) qdel(P) /obj/item/storage/photo_album/HoS + name = "photo album (Head of Security)" persistence_id = "HoS" /obj/item/storage/photo_album/RD + name = "photo album (Research Director)" persistence_id = "RD" /obj/item/storage/photo_album/HoP + name = "photo album (Head of Personnel)" persistence_id = "HoP" /obj/item/storage/photo_album/Captain + name = "photo album (Captain)" persistence_id = "Captain" /obj/item/storage/photo_album/CMO + name = "photo album (Chief Medical Officer)" persistence_id = "CMO" /obj/item/storage/photo_album/QM + name = "photo album (Quartermaster)" persistence_id = "QM" /obj/item/storage/photo_album/CE + name = "photo album (Chief Engineer)" persistence_id = "CE" + +/obj/item/storage/photo_album/bar + name = "photo album (Bar)" + persistence_id = "bar" + +/obj/item/storage/photo_album/syndicate + name = "photo album (Syndicate)" + persistence_id = "syndicate" + +/obj/item/storage/photo_album/library + name = "photo album (Library)" + persistence_id = "library" + +obj/item/storage/photo_album/chapel + name = "photo album (Chapel)" + persistence_id = "chapel" + +obj/item/storage/photo_album/prison + name = "photo album (Prison)" + persistence_id = "prison" diff --git a/code/modules/photography/photos/frame.dm b/code/modules/photography/photos/frame.dm index 40f7d22c728..09e21d68813 100644 --- a/code/modules/photography/photos/frame.dm +++ b/code/modules/photography/photos/frame.dm @@ -99,7 +99,7 @@ load_from_id(data[persistence_id]) /obj/structure/sign/picture_frame/proc/load_from_id(id) - var/obj/item/photo/P = load_photo_from_disk(id) + var/obj/item/photo/old/P = load_photo_from_disk(id) if(istype(P)) if(istype(framed)) framed.forceMove(drop_location()) diff --git a/code/modules/photography/photos/photo.dm b/code/modules/photography/photos/photo.dm index 26359402b26..282143a0d4f 100644 --- a/code/modules/photography/photos/photo.dm +++ b/code/modules/photography/photos/photo.dm @@ -91,3 +91,6 @@ if((loc == usr || loc.loc && loc.loc == usr) && usr.stat == CONSCIOUS && !usr.incapacitated()) name = "photo[(n_name ? text("- '[n_name]'") : null)]" add_fingerprint(usr) + +/obj/item/photo/old + icon_state = "photo_old" diff --git a/code/modules/vending/games.dm b/code/modules/vending/games.dm index 1f5eca4cb88..e71509c6281 100644 --- a/code/modules/vending/games.dm +++ b/code/modules/vending/games.dm @@ -7,7 +7,8 @@ /obj/item/storage/pill_bottle/dice = 10, /obj/item/toy/cards/deck/cas = 3, /obj/item/toy/cards/deck/cas/black = 3, - /obj/item/hourglass = 2) + /obj/item/hourglass = 2, + /obj/item/camera = 3) contraband = list(/obj/item/dice/fudge = 9) refill_canister = /obj/item/vending_refill/games default_price = 10 diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 255ed8fb0ec..60ecc0eb2ed 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ