Files
mcbalaam 3799968eb3 feat: new floppy disk sprites; most disks are now under the /item/disk type; adds disk stacking, uqinue styling and wrapping (#94112)
## About The Pull Request

Floppy disks received a sprite upgrade, as well as unique wraps:

<img width="364" height="150" alt="image"
src="https://github.com/user-attachments/assets/0ac433e3-7432-4c06-bec2-aeae00b6852f"
/>

<img width="786" height="527" alt="image"
src="https://github.com/user-attachments/assets/0f36bd0d-0362-4431-8131-49060a2fe348"
/>

You can now stack floppy disks! They also scatter around when thrown.
The video also showcases new styling options with a selection of
stickers! You can also write something on the disk instead of selecting
an icon:


https://github.com/user-attachments/assets/ff0a8542-9d79-4108-ae46-672ca5d620a2

MOST disks now inherit the `/item/disk` type to properly stack and do...
stuff. An updatepaths script included.

## Why It's Good For The Game

Old school is cool. Stacking disks makes them feel more authentic, while
styling allows for more crearivity!

## Changelog

🆑
add: New unique wraps for floppy disks
qol: Floppy disks can now be stacked
image: New sprites and stickers for floppy disks
map: Added and ran an updatepaths script
refactor: Most disks are now under the base disk item type
/🆑

---------

Co-authored-by: The-Tyrant <tyrantofgaming@gmail.com>
2026-01-04 08:52:18 +13:00

141 lines
5.0 KiB
Plaintext

// This file contains all boxes used by the Science department and its purpose on the station.
/obj/item/storage/box/swab
name = "box of microbiological swabs"
desc = "Contains a number of sterile swabs for collecting microbiological samples."
illustration = "swab"
/obj/item/storage/box/swab/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/swab(src)
/obj/item/storage/box/petridish
name = "box of petri dishes"
desc = "This box purports to contain a number of high rim petri dishes."
illustration = "petridish"
/obj/item/storage/box/petridish/PopulateContents()
for(var/i in 1 to 7)
new /obj/item/petri_dish(src)
/obj/item/storage/box/plumbing
name = "box of plumbing supplies"
desc = "Contains a small supply of pipes, water recyclers, and iron to connect to the rest of the station."
//Disk boxes
/obj/item/storage/box/disks
name = "floppy disk box"
illustration = "disk_kit"
desc = "A set of 8 Nanotrasen-approved floppy disks in individual packaging."
/obj/item/storage/box/disks/PopulateContents()
for(var/i in 1 to 8)
new /obj/item/delivery/small/floppy(src)
/obj/item/storage/box/monkeycubes
name = "monkey cube box"
desc = "Drymate brand monkey cubes. Just add water!"
icon_state = "monkeycubebox"
illustration = null
custom_price = PAYCHECK_CREW * 2
storage_type = /datum/storage/box/monkey_cube
/// Which type of cube are we spawning in this box?
var/cube_type = /obj/item/food/monkeycube
/obj/item/storage/box/monkeycubes/PopulateContents()
for(var/i in 1 to 5)
new cube_type(src)
/obj/item/storage/box/monkeycubes/syndicate
desc = "Waffle Corp. brand monkey cubes. Just add water and a dash of subterfuge!"
cube_type = /obj/item/food/monkeycube/syndicate
/obj/item/storage/box/monkeycubes/random
name = "monster cube box"
desc = "A box containing a bunch of random cubes. Add water and see what you get!"
cube_type = /obj/item/food/monkeycube/random
/obj/item/storage/box/gorillacubes
name = "gorilla cube box"
desc = "Waffle Corp. brand gorilla cubes. Do not taunt."
icon_state = "monkeycubebox"
illustration = null
storage_type = /datum/storage/box/gorilla_cube_box
/obj/item/storage/box/gorillacubes/PopulateContents()
for(var/i in 1 to 3)
new /obj/item/food/monkeycube/gorilla(src)
/obj/item/storage/box/stockparts/basic //for ruins where it's a bad idea to give access to an autolathe/protolathe, but still want to make stock parts accessible
name = "box of stock parts"
desc = "Contains a variety of basic stock parts."
/obj/item/storage/box/stockparts/basic/PopulateContents()
var/list/items_inside = list(
/obj/item/stock_parts/capacitor = 3,
/obj/item/stock_parts/servo = 3,
/obj/item/stock_parts/matter_bin = 3,
/obj/item/stock_parts/micro_laser = 3,
/obj/item/stock_parts/scanning_module = 3,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/stockparts/deluxe
name = "box of deluxe stock parts"
desc = "Contains a variety of deluxe stock parts."
icon_state = "syndiebox"
/obj/item/storage/box/stockparts/deluxe/PopulateContents()
var/list/items_inside = list(
/obj/item/stock_parts/capacitor/quadratic = 3,
/obj/item/stock_parts/scanning_module/triphasic = 3,
/obj/item/stock_parts/servo/femto = 3,
/obj/item/stock_parts/micro_laser/quadultra = 3,
/obj/item/stock_parts/matter_bin/bluespace = 3,
)
generate_items_inside(items_inside,src)
/obj/item/storage/box/rndboards
name = "\proper the liberator's legacy"
desc = "A box containing a gift for worthy golems."
illustration = "scicircuit"
/obj/item/storage/box/rndboards/PopulateContents()
new /obj/item/circuitboard/machine/protolathe/offstation(src)
new /obj/item/circuitboard/machine/destructive_analyzer(src)
new /obj/item/circuitboard/machine/circuit_imprinter/offstation(src)
new /obj/item/circuitboard/computer/rdconsole/unlocked(src)
/obj/item/storage/box/stabilized //every single stabilized extract from xenobiology
name = "box of stabilized extracts"
icon_state = "syndiebox"
storage_type = /datum/storage/box/stabilized
/obj/item/storage/box/stabilized/PopulateContents()
var/list/items_inside = list(
/obj/item/slimecross/stabilized/adamantine=1,
/obj/item/slimecross/stabilized/black=1,
/obj/item/slimecross/stabilized/blue=1,
/obj/item/slimecross/stabilized/bluespace=1,
/obj/item/slimecross/stabilized/cerulean=1,
/obj/item/slimecross/stabilized/darkblue=1,
/obj/item/slimecross/stabilized/darkpurple=1,
/obj/item/slimecross/stabilized/gold=1,
/obj/item/slimecross/stabilized/green=1,
/obj/item/slimecross/stabilized/grey=1,
/obj/item/slimecross/stabilized/lightpink=1,
/obj/item/slimecross/stabilized/metal=1,
/obj/item/slimecross/stabilized/oil=1,
/obj/item/slimecross/stabilized/orange=1,
/obj/item/slimecross/stabilized/pink=1,
/obj/item/slimecross/stabilized/purple=1,
/obj/item/slimecross/stabilized/pyrite=1,
/obj/item/slimecross/stabilized/rainbow=1,
/obj/item/slimecross/stabilized/red=1,
/obj/item/slimecross/stabilized/sepia=1,
/obj/item/slimecross/stabilized/silver=1,
/obj/item/slimecross/stabilized/yellow=1,
)
generate_items_inside(items_inside,src)