Files
L0pz 0df0ef5b7b Adds purity seals (#93496)
## About The Pull Request

Adds purity seals for the chaplain's use. Calling them cheap stickers
may get you branded as a heretic.


## Why It's Good For The Game


Sometimes people need more than just your word that their lead pipe has
been blessed by you, the most holy chaplain. That's where the purity
seals come into play, as they are a visual indicator of your deity's
approval.
<img width="259" height="182" alt="image"
src="https://github.com/user-attachments/assets/5492bae8-175a-4387-9279-263fbb492510"
/>


## Changelog
🆑
add: Added purity seals, which may be found inside two boxes being sold
by the Deus-Vend
/🆑
2025-10-19 02:16:19 +03:00

308 lines
9.5 KiB
Plaintext

// This file contains all boxes used by the Service department and its purpose on the station.
// Because we want to avoid some sort of "miscellaneous" file, let's put all the bureaucracy (pens and stuff) and the HoP's stuff here as well.
/obj/item/storage/box/drinkingglasses
name = "box of drinking glasses"
desc = "It has a picture of drinking glasses on it."
illustration = "drinkglass"
/obj/item/storage/box/drinkingglasses/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/reagent_containers/cup/glass/drinkingglass(src)
/obj/item/storage/box/cups
name = "box of paper cups"
desc = "It has pictures of paper cups on the front."
illustration = "cup"
/obj/item/storage/box/cups/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/reagent_containers/cup/glass/sillycup(src)
//Some spare PDAs in a box
/obj/item/storage/box/pdas
name = "spare PDAs"
desc = "A box of spare PDA microcomputers."
illustration = "pda"
/obj/item/storage/box/pdas/PopulateContents()
for(var/i in 1 to 4)
new /obj/item/modular_computer/pda(src)
/obj/item/storage/box/ids
name = "box of spare IDs"
desc = "Has so many empty IDs."
illustration = "id"
/obj/item/storage/box/ids/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/card/id/advanced(src)
/obj/item/storage/box/silver_ids
name = "box of spare silver IDs"
desc = "Shiny IDs for important people."
illustration = "id"
/obj/item/storage/box/silver_ids/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/card/id/advanced/silver(src)
/obj/item/storage/box/mousetraps
name = "box of Pest-B-Gon mousetraps"
desc = span_alert("Keep out of reach of children.")
illustration = "mousetrap"
/obj/item/storage/box/mousetraps/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/assembly/mousetrap(src)
/obj/item/storage/box/snappops
name = "snap pop box"
desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children."
icon = 'icons/obj/toys/toy.dmi'
icon_state = "spbox"
illustration = ""
storage_type = /datum/storage/box/snappops
/obj/item/storage/box/snappops/PopulateContents()
for(var/i in 1 to 8)
new /obj/item/toy/snappop(src)
/obj/item/storage/box/matches
name = "matchbox"
desc = "A small box of Almost But Not Quite Plasma Premium Matches."
icon = 'icons/obj/cigarettes.dmi'
icon_state = "matchbox"
inhand_icon_state = "zippo"
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
worn_icon_state = "lighter"
w_class = WEIGHT_CLASS_TINY
slot_flags = ITEM_SLOT_BELT
drop_sound = 'sound/items/handling/matchbox_drop.ogg'
pickup_sound = 'sound/items/handling/matchbox_pickup.ogg'
custom_price = PAYCHECK_CREW * 0.4
base_icon_state = "matchbox"
illustration = null
storage_type = /datum/storage/box/match
/obj/item/storage/box/matches/Initialize(mapload)
. = ..()
AddElement(/datum/element/ignites_matches)
/obj/item/storage/box/matches/PopulateContents()
for(var/i in 1 to 10)
new /obj/item/match(src)
/obj/item/storage/box/matches/update_icon_state()
. = ..()
switch(length(contents))
if(10)
icon_state = base_icon_state
if(5 to 9)
icon_state = "[base_icon_state]_almostfull"
if(1 to 4)
icon_state = "[base_icon_state]_almostempty"
if(0)
icon_state = "[base_icon_state]_e"
/obj/item/storage/box/lights
name = "box of replacement bulbs"
desc = "This box is shaped on the inside so that only light tubes and bulbs fit."
inhand_icon_state = "syringe_kit"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
foldable_result = /obj/item/stack/sheet/cardboard //BubbleWrap
illustration = "light"
storage_type = /datum/storage/box/lights
/obj/item/storage/box/lights/bulbs/PopulateContents()
for(var/i in 1 to 21)
new /obj/item/light/bulb(src)
/obj/item/storage/box/lights/tubes
name = "box of replacement tubes"
illustration = "lighttube"
/obj/item/storage/box/lights/tubes/PopulateContents()
for(var/i in 1 to 21)
new /obj/item/light/tube(src)
/obj/item/storage/box/lights/mixed
name = "box of replacement lights"
illustration = "lightmixed"
/obj/item/storage/box/lights/mixed/PopulateContents()
for(var/i in 1 to 14)
new /obj/item/light/tube(src)
for(var/i in 1 to 7)
new /obj/item/light/bulb(src)
/obj/item/storage/box/fountainpens
name = "box of fountain pens"
illustration = "fpen"
/obj/item/storage/box/fountainpens/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/pen/fountain(src)
/obj/item/storage/box/dishdrive
name = "DIY Dish Drive Kit"
desc = "Contains everything you need to build your own Dish Drive!"
custom_premium_price = PAYCHECK_CREW * 3
/obj/item/storage/box/dishdrive/PopulateContents()
var/static/items_inside = list(
/obj/item/circuitboard/machine/dish_drive = 1,
/obj/item/screwdriver = 1,
/obj/item/stack/cable_coil/five = 1,
/obj/item/stack/sheet/glass = 1,
/obj/item/stack/sheet/iron/five = 1,
/obj/item/stock_parts/servo = 1,
/obj/item/stock_parts/matter_bin = 2,
/obj/item/wrench = 1,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/actionfigure
name = "box of action figures"
desc = "The latest set of collectable action figures."
icon_state = "box"
/obj/item/storage/box/actionfigure/PopulateContents()
for(var/i in 1 to 4)
var/random_figure = pick(subtypesof(/obj/item/toy/figure))
new random_figure(src)
/obj/item/storage/box/tail_pin
name = "pin the tail on the corgi supplies"
desc = "For ages 10 and up. ...Why is this even on a space station? Aren't you a little old for babby games?" //Intentional typo.
custom_price = PAYCHECK_COMMAND * 1.25
/obj/item/storage/box/tail_pin/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/poster/tail_board(src)
new /obj/item/tail_pin(src)
/obj/item/storage/box/party_poppers
name = "box of party poppers"
desc = "Turn any event into a celebration and ensure the janitor stays busy."
/obj/item/storage/box/party_poppers/PopulateContents()
for(var/i in 1 to 5)
new /obj/item/reagent_containers/spray/chemsprayer/party(src)
/obj/item/storage/box/balloons
name = "box of long balloons"
desc = "A completely randomized and wacky box of long balloons, harvested straight from balloon farms on the clown planet."
illustration = "balloon"
storage_type = /datum/storage/box/balloon
/obj/item/storage/box/balloons/PopulateContents()
for(var/i in 1 to 24)
new /obj/item/toy/balloon/long(src)
/obj/item/storage/box/stickers
name = "sticker pack"
desc = "A pack of removable stickers. Removable? What a rip off!<br>On the back, <b>DO NOT GIVE TO THE CLOWN!</b> is printed in large lettering."
icon = 'icons/obj/toys/stickers.dmi'
icon_state = "stickerpack"
illustration = null
w_class = WEIGHT_CLASS_TINY
storage_type = /datum/storage/box/stickers
var/static/list/pack_labels = list(
"smile",
"frown",
"heart",
"silentman",
"tider",
"star",
)
/obj/item/storage/box/stickers/Initialize(mapload)
. = ..()
if(isnull(illustration))
illustration = pick(pack_labels)
update_appearance()
/obj/item/storage/box/stickers/proc/generate_non_contraband_stickers_list()
var/list/allowed_stickers = list()
for(var/obj/item/sticker/sticker_type as anything in subtypesof(/obj/item/sticker))
if(!sticker_type::exclude_from_random)
allowed_stickers += sticker_type
return allowed_stickers
/obj/item/storage/box/stickers/PopulateContents()
var/static/list/non_contraband
if(isnull(non_contraband))
non_contraband = generate_non_contraband_stickers_list()
for(var/i in 1 to rand(4, 8))
var/type = pick(non_contraband)
new type(src)
/obj/item/storage/box/stickers/googly
name = "googly eye sticker pack"
desc = "Turn anything and everything into something vaguely alive!"
illustration = "googly-alt"
/obj/item/storage/box/stickers/googly/PopulateContents()
for(var/i in 1 to 6)
new /obj/item/sticker/googly(src)
/// A box containing a skub, for easier carry because skub is a bulky item.
/obj/item/storage/box/stickers/skub
name = "skub fan pack"
desc = "A vinyl pouch to store your skub and pro-skub shirt in. A label on the back reads: \"Skubtide, Stationwide\"."
icon_state = "skubpack"
illustration = "label_skub"
w_class = WEIGHT_CLASS_SMALL
storage_type = /datum/storage/box/skub
/obj/item/storage/box/stickers/skub/PopulateContents()
new /obj/item/skub(src)
new /obj/item/sticker/skub(src)
new /obj/item/sticker/skub(src)
/obj/item/storage/box/stickers/anti_skub
name = "anti-skub stickers pack"
desc = "The enemy may have been given a skub and a shirt, but I've got more stickers! Plus the pack can hold my anti-skub shirt."
icon_state = "skubpack"
illustration = "label_anti_skub"
storage_type = /datum/storage/box/anti_skub
/obj/item/storage/box/stickers/anti_skub/PopulateContents()
for(var/i in 1 to 4)
new /obj/item/sticker/anti_skub(src)
/obj/item/storage/box/pinpointer_pairs
name = "pinpointer pair box"
/obj/item/storage/box/pinpointer_pairs/PopulateContents()
var/obj/item/pinpointer/pair/A = new(src)
var/obj/item/pinpointer/pair/B = new(src)
A.other_pair = B
B.other_pair = A
/obj/item/storage/box/heretic_box
name = "box of pierced realities"
desc = "A box containing toys resembling pierced realities."
/obj/item/storage/box/heretic_box/PopulateContents()
for(var/i in 1 to rand(1,4))
new /obj/item/toy/reality_pierce(src)
/obj/item/storage/box/purity_seal_box
name = "box of purity seals"
desc = "A box containing several blessed purity seals."
/obj/item/storage/box/purity_seal_box/PopulateContents()
for(var/i in 1 to 4)
new /obj/item/sticker/purity_seal(src)
new /obj/item/sticker/purity_seal/purity_seal_2(src)