diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 01ad8e8f82b..1e9ff3aa271 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -352,12 +352,14 @@ item_state = "comic" /obj/item/toy/comic/azmarian/issue_1 + name = "az'marian comic - issue 1" desc_extended = "Issue 1 - The Az'Marian Landing! - In this issue, the would-be hero departs from Az'Mar and lands in a war-torn \ town in the outskirts of the Kingdom, witnessing the townspeople terrorised by a Zhan'Khazan maniacal terrorist. After mutilating \ his body with alien technology and even cutting off his own arms to replace with robotic equivalents, the cybernetically enhanced \ Corporal Khara'zan will not let his reign of terror be stopped easily. Will the visitor from Az'mar manage to stand in his way and prevail?" /obj/item/toy/comic/azmarian/issue_2 + name = "az'marian comic - issue 2" desc_extended = "Issue 2 - The Road Towards A Dark Future - In this issue, the Az'Marian meets the local nobility whom he had saved from \ terror, learning that the Kingdom is threatened on all fronts. The superhero embarks on a journey through bandit-infested lands towards the \ headquarters of evil, meeting an unlikely ally and his band of friends. However, all is not what it seems, and the superhero will soon face \ @@ -365,24 +367,28 @@ faces the modern threat of depraved Tajara." /obj/item/toy/comic/azmarian/issue_3 + name = "az'marian comic - issue 3" desc_extended = "Issue 3 - The Swamp Debacle - In this issue, the Az'Marian and his loyal but dim-witted sidekick Murr'zhul reach a poisonous \ swamp polluted by waste-producing factories. A chemical-obsessed scientist looks to experiment and find the perfect poison for his evil deeds, \ killing the surrounding nature and turning residents sickly. A lumbering creature hiding in the swamp caves, a mad researcher about to find the \ perfect toxin, and the duo seeking to halt his plans. Will they find a way to shut him down?" /obj/item/toy/comic/azmarian/issue_4 + name = "az'marian comic - issue 4" desc_extended = "Issue 4 - The Den of Evil! - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul reach the stronghold of \ the retreating Corporal Khara'zan. The superhero uncovers a sinister plot orchestrated by the Corporal's superior to turn all of the local living \ beings into cyborgs. The leader, Director Shul'tyz, is not yet aware of the Az'Marian's presence, and the time is ripe. Met with a slumbering horde \ of cybernetic ha'rrons, schlorrgos and even Tajara, the superhero encounters a threat that will truly test his mettle." /obj/item/toy/comic/azmarian/issue_5 + name = "az'marian comic - issue 5" desc_extended = "Issue 5 - Path to Recovery - In this issue, the hero, who has faced a successful confrontation with Director Shul'tyz, managed to \ free the local populace of cybernetic mind control, but at a heavy price. The syringe that was shot into him started coursing through his veins, preventing \ him from using his powers in a rapidly degrading state. His loyal sidekick Murr'zhul helps bring the hero to the capital of the ancient Kingdom to seek aid. \ Met with internal politics, a mixed reception, sinister plots and a meeting with the King, will the hero find a way to recover from the illness that plagues him?" /obj/item/toy/comic/azmarian/issue_6 + name = "az'marian comic - issue 6" desc_extended = "Issue 6 - The Pilgrimage - Steppe Trouble! - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul embark on a journey \ to a sacred shrine in the mountains built by the early Ancient Tajara. Having received a blessing to prevent his state from degrading from the local priests, \ the hero has little time to waste before the blessing wanes. A meeting with wandering nomads, an audience with their ruler, and a perilous journey across \ @@ -390,12 +396,14 @@ trusted Hharar side-kick manage to reach the mountains?" /obj/item/toy/comic/azmarian/issue_7 + name = "az'marian comic - issue 7" desc_extended = "Issue 7 - The Pilgrimage Pt. 2 - Mountain Survival - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul reach \ the mountains that contain the ancient shrine of the Suns, where he would be able to recover from his illness caused by Director Shul'tyz. Trailed \ by Sham'tyrs, facing freezing winds and snow, the two will trek to reach the shrine in hope of recovery. Bandits encampments, a village in need of help, \ a chance encounter with the S'Mara, and a shape-shifting spy amongst the Sham'tyrs, will the heroes make their way in one piece?" /obj/item/toy/comic/azmarian/issue_8 + name = "az'marian comic - issue 8" desc_extended = "Issue 8 - The Shrine - In this issue, the hero and his loyal but dim-witted sidekick Murr'zhul meet the Parivara at the ancient shrine. \ Tended to by the Sun Sister with the blessing of Messa, the Az'Marian manages to recover from his affliction over the course of a week. He learns of an \ evil plan staged by a group of Cae'rrin living in caves nearby to desecrate the shrine and eat its attendants, and the two embark on a journey to put a \ diff --git a/code/modules/cargo/items/operations.dm b/code/modules/cargo/items/operations.dm index 1a0a203bdab..76ec7851ad4 100644 --- a/code/modules/cargo/items/operations.dm +++ b/code/modules/cargo/items/operations.dm @@ -587,11 +587,11 @@ name = "commissary cigarette restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 200 + price = 240 items = list( - /obj/item/commissary_restrock + /obj/item/storage/box/fancy/commissary_restock ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -601,11 +601,11 @@ name = "commissary tobacco leaves restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 100 items = list( - /obj/item/commissary_restrock/rollable + /obj/item/storage/box/fancy/commissary_restock/rollable ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -615,11 +615,11 @@ name = "commissary chewing tobacco restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 175 + price = 240 items = list( - /obj/item/commissary_restrock/chewable + /obj/item/storage/box/fancy/commissary_restock/chewable ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -629,11 +629,11 @@ name = "commissary smoking accessories restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 400 // includes a bunch of lottery tickets, so it should be relatively high compared to other restocks + price = 140 items = list( - /obj/item/commissary_restrock/smoking_accessory + /obj/item/storage/box/fancy/commissary_restock/smoking_accessory ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -643,11 +643,11 @@ name = "commissary electronic cigarette restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 225 + price = 80 items = list( - /obj/item/commissary_restrock/electronic_cig + /obj/item/storage/box/fancy/commissary_restock/electronic_cig ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -657,11 +657,11 @@ name = "commissary snack restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 100 items = list( - /obj/item/commissary_restrock/food + /obj/item/storage/box/fancy/commissary_restock/food ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -671,11 +671,11 @@ name = "commissary xeno snack restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 60 items = list( - /obj/item/commissary_restrock/food/xeno + /obj/item/storage/box/fancy/commissary_restock/food/xeno ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -685,11 +685,11 @@ name = "commissary candy restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 65 items = list( - /obj/item/commissary_restrock/food/candy + /obj/item/storage/box/fancy/commissary_restock/food/candy ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -699,11 +699,11 @@ name = "commissary microwave meal restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 150 + price = 220 items = list( - /obj/item/commissary_restrock/food/microwave + /obj/item/storage/box/fancy/commissary_restock/food/microwave ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -713,11 +713,11 @@ name = "commissary drink restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 300 + price = 150 items = list( - /obj/item/commissary_restrock/drink + /obj/item/storage/box/fancy/commissary_restock/drink ) - access = 0 + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 @@ -727,11 +727,110 @@ name = "commissary beer restock" supplier = "getmore" description = "A box full of stock for the commissary." - price = 200 + price = 100 items = list( - /obj/item/commissary_restrock/drink/booze_cheap + /obj/item/storage/box/fancy/commissary_restock/drink/booze_cheap ) - access = 0 + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/toys_restock + category = "operations" + name = "commissary toy restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 110 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/dice_cards_restock + category = "operations" + name = "commissary dice and card restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 120 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/cards_dice + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/toy_mech_restock + category = "operations" + name = "commissary toy mech restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 200 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/mech + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/comic_restock + category = "operations" + name = "commissary comic restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 25 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/comic + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/nka_comic_restock + category = "operations" + name = "commissary az'marian comic series restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 50 + items = list( + /obj/item/storage/box/fancy/commissary_restock/toy/comic/nka + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/music_restock + category = "operations" + name = "commissary music restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + price = 50 + items = list( + /obj/item/storage/box/fancy/commissary_restock/music + ) + access = ACCESS_CARGO + container_type = "crate" + groupable = TRUE + spawn_amount = 1 + +/singleton/cargo_item/tea_restock + category = "operations" + name = "commissary tea restock" + supplier = "getmore" + description = "A box full of stock for the commissary." + // Bulk commissary orders are at a discount, so cheaper per tin of tea than regularly ordering tea + price = 75 + items = list( + /obj/item/storage/box/fancy/commissary_restock/tea + ) + access = ACCESS_CARGO container_type = "crate" groupable = TRUE spawn_amount = 1 diff --git a/code/modules/cooking/machinery/commissary.dm b/code/modules/cooking/machinery/commissary.dm index d2d0143c214..7975875d4ce 100644 --- a/code/modules/cooking/machinery/commissary.dm +++ b/code/modules/cooking/machinery/commissary.dm @@ -122,7 +122,11 @@ /obj/item/gun/bang, /obj/item/eightball, /obj/item/bikehorn, - /obj/item/camera_film + /obj/item/camera_film, + /obj/item/ammo_magazine/caps, + /obj/item/pack, + /obj/item/storage/card, + /obj/item/music_cartridge ) display_tiers = 4 display_tier_amt = 5 @@ -130,25 +134,6 @@ /obj/machinery/smartfridge/tradeshelf/mouse_drop_receive(atom/dropping, mob/user, params) LoadComponent(/datum/component/leanable, dropping) -/obj/machinery/smartfridge/tradeshelf/attackby(obj/item/attacking_item, mob/user) - if(istype(attacking_item, /obj/item/commissary_restrock)) - var/obj/item/commissary_restrock/P = attacking_item - var/item_loaded = 0 - for(var/obj/G in P.contents) - if(accept_check(G)) - if(length(contents) >= max_n_of_items) - break - P.remove_from_storage(G,src) - item_quants[G.name]++ - item_loaded++ - if(item_loaded) - user.visible_message("[user] loads [src] with [P].", SPAN_NOTICE("You load [src] with [P].")) - if(length(P.contents) > 0) - to_chat(user, SPAN_NOTICE("Some items are refused.")) - update_icon() - return TRUE - . = ..() - // ------------------------------------------------- /obj/structure/cash_register/commissary storage_type = null @@ -265,14 +250,24 @@ set_light(FALSE) return -/obj/item/commissary_restrock +/obj/item/storage/box/fancy/commissary_restock name = "commissary cigarette restock pack" icon = 'icons/obj/storage/boxes.dmi' icon_state = "commissary_restock" item_state = "commissary_restock" w_class = WEIGHT_CLASS_NORMAL - var/illustration = "sparkler" - var/starts_with = list( + illustration = "sparkler" + label = null + foldable = /obj/item/stack/material/cardboard + color = null + icon_overlays = FALSE + display_contents_with_number = TRUE + allow_quick_gather = TRUE + make_exact_fit = TRUE + can_hold_strict = TRUE + closable = FALSE + opened_icon_state = "commissary_restock_used" + starts_with = list( // Cigarettes /obj/item/storage/box/fancy/cigarettes/pra = 3, /obj/item/storage/box/fancy/cigarettes/dpra = 3, @@ -286,7 +281,12 @@ /obj/item/storage/box/fancy/cigarettes/cigar = 3 ) -/obj/item/commissary_restrock/rollable +/obj/item/storage/box/fancy/commissary_restock/Initialize() + . = ..() + // The copy() at the end is required to avoid every line after this from imploding. Why? I have no idea. It just does. + can_hold = src.starts_with.Copy() + +/obj/item/storage/box/fancy/commissary_restock/rollable name = "commissary tobacco leaves restock pack" starts_with = list( // Rollables @@ -298,7 +298,7 @@ /obj/item/storage/chewables/rollable/vedamor = 3 ) -/obj/item/commissary_restrock/chewable +/obj/item/storage/box/fancy/commissary_restock/chewable name = "commissary chewing tobacco restock pack" starts_with = list( // Chewing tobacco @@ -313,7 +313,7 @@ /obj/item/storage/chewables/solar_salve = 3 ) -/obj/item/commissary_restrock/smoking_accessory +/obj/item/storage/box/fancy/commissary_restock/smoking_accessory name = "commissary smoking accessories restock pack" starts_with = list( // Misc smoking @@ -327,7 +327,7 @@ /obj/item/spacecash/ewallet/lotto = 8 // A bit of a risk that hangar techs may just use them instead of selling, but that should be handled IC as theft ) -/obj/item/commissary_restrock/electronic_cig +/obj/item/storage/box/fancy/commissary_restock/electronic_cig name = "commissary electronic cigarette restock pack" starts_with = list( // Electronic @@ -339,7 +339,7 @@ /obj/item/reagent_containers/ecig_cartridge/grape = 2 ) -/obj/item/commissary_restrock/food +/obj/item/storage/box/fancy/commissary_restock/food name = "commissary snack restock pack" illustration = "snack" starts_with = list( @@ -361,7 +361,7 @@ /obj/item/reagent_containers/food/snacks/sosjerky = 3 ) -/obj/item/commissary_restrock/food/xeno +/obj/item/storage/box/fancy/commissary_restock/food/xeno name = "commissary xeno snack restock pack" illustration = "snack" starts_with = list( @@ -381,7 +381,7 @@ /obj/item/reagent_containers/food/snacks/adhomian_can = 2, ) -/obj/item/commissary_restrock/food/candy +/obj/item/storage/box/fancy/commissary_restock/food/candy name = "commissary candy restock pack" starts_with = list( // Candy @@ -393,12 +393,12 @@ /obj/item/storage/box/fancy/vkrexitaffy = 3, /obj/item/clothing/mask/chewable/candy/lolli = 5, /obj/item/storage/box/fancy/admints = 3, - /obj/item/reagent_containers/food/drinks/bottle/bestblend, - /obj/item/storage/box/fancy/foysnack, - /obj/item/reagent_containers/food/snacks/choctruffles + /obj/item/reagent_containers/food/drinks/bottle/bestblend = 2, + /obj/item/storage/box/fancy/foysnack = 3, + /obj/item/reagent_containers/food/snacks/choctruffles = 3 ) -/obj/item/commissary_restrock/food/microwave +/obj/item/storage/box/fancy/commissary_restock/food/microwave name = "commissary microwave meal restock pack" starts_with = list( // Microwave meals @@ -418,7 +418,7 @@ /obj/item/storage/box/unique/donkpockets = 3 ) -/obj/item/commissary_restrock/drink +/obj/item/storage/box/fancy/commissary_restock/drink name = "commissary drink restock pack" illustration = "soda" starts_with = list( @@ -451,7 +451,7 @@ /obj/item/reagent_containers/food/drinks/carton/small/milk/strawberry = 5 ) -/obj/item/commissary_restrock/drink/booze_cheap +/obj/item/storage/box/fancy/commissary_restock/drink/booze_cheap name = "commissary cheap booze restock pack" starts_with = list( // Booze @@ -465,61 +465,114 @@ /obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice = 6 ) -/obj/item/commissary_restrock/Initialize(mapload, ...) - . = ..() - if(illustration) - var/image/illustration_img = image(icon, illustration) - illustration_img.appearance_flags |= RESET_COLOR - AddOverlays(illustration_img) - fill() -/obj/item/commissary_restrock/proc/fill() - if(LAZYLEN(starts_with)) - for(var/t in starts_with) - if(!ispath(t)) - crash_with("[t] in [src]'s starts_with list is not a path!") - continue - for(var/i=0, i