adds crushed can, jelly doughnut, and shipping container random spawners (#78444)

## About The Pull Request
i got bored so i made some new spawners, mainly for mappers but maybe an
admin will use them too. pics here:

![image](https://github.com/tgstation/tgstation/assets/110322848/2cd121dc-6fa6-46fd-bd9f-4cab72ead9c7)

firstly, this adds crushed can spawners, for if you want a random
crushed can sprite in your map, and don't really care which it is.
if you _do_ care, however - you can set the var/random_icon field on one
of these to 0, in your copy of strongdmm. then just change the icon
state to whatever specific can design you'd like it to be (ie:
"wellcheers")
here you can see a few of them in action

![image](https://github.com/tgstation/tgstation/assets/110322848/9fa3e210-e979-42c7-8f8c-d155ca2fe9bb)

secondly, this adds doughnut, jelly doughnut, and slime jelly doughnut
spawners - pictured below
these use a weighted list based on flavor - more down to earth flavors
are more common, while more interesting and unique flavors like bungo
and blumpkin are a bit rarer.

![image](https://github.com/tgstation/tgstation/assets/110322848/31cf6677-9f4b-40d0-91f0-bcdd59803e74)

thirdly, this adds a shipping container spawner. this one uses a
weighted list so the super obvious syndi corps are rare, less obvious
ones are less rare, and regular corporate ones are common. here you can
see a few.

![image](https://github.com/tgstation/tgstation/assets/110322848/8a8731e7-f6fc-4b91-9680-5b6b93619430)
## Why It's Good For The Game
more flexibility for mappers, more dynamic spawns... what's not to love?
## Changelog
🆑
not player facing
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
This commit is contained in:
Lamb
2023-09-23 20:20:49 +02:00
committed by GitHub
co-authored by Ghom
parent 133a91e0f7
commit c570c96ebb
6 changed files with 91 additions and 0 deletions
@@ -273,3 +273,53 @@
if(!HAS_TRAIT(SSstation, STATION_TRAIT_BIRTHDAY))
spawn_loot_chance = 0
return ..()
/obj/effect/spawner/random/food_or_drink/donuts
name = "donut spawner"
icon_state = "donut"
loot = list(
/obj/item/food/donut/apple = 3,
/obj/item/food/donut/berry = 3,
/obj/item/food/donut/caramel = 3,
/obj/item/food/donut/choco = 3,
/obj/item/food/donut/plain = 3,
/obj/item/food/donut/blumpkin = 2,
/obj/item/food/donut/bungo = 2,
/obj/item/food/donut/laugh = 2,
/obj/item/food/donut/matcha = 2,
/obj/item/food/donut/trumpet = 2,
/obj/item/food/donut/chaos = 1,
/obj/item/food/donut/meat = 1,
)
/obj/effect/spawner/random/food_or_drink/jelly_donuts
name = "jelly donut spawner"
icon_state = "jelly_donut"
loot = list(
/obj/item/food/donut/jelly/apple = 3,
/obj/item/food/donut/jelly/berry = 3,
/obj/item/food/donut/jelly/caramel = 3,
/obj/item/food/donut/jelly/choco = 3,
/obj/item/food/donut/jelly/plain = 3,
/obj/item/food/donut/jelly/blumpkin = 2,
/obj/item/food/donut/jelly/bungo = 2,
/obj/item/food/donut/jelly/laugh = 2,
/obj/item/food/donut/jelly/matcha = 2,
/obj/item/food/donut/jelly/trumpet = 2,
)
/obj/effect/spawner/random/food_or_drink/slime_jelly_donuts
name = "slime jelly donut spawner"
icon_state = "slime_jelly_donut"
loot = list(
/obj/item/food/donut/jelly/slimejelly/apple = 3,
/obj/item/food/donut/jelly/slimejelly/berry = 3,
/obj/item/food/donut/jelly/slimejelly/caramel = 3,
/obj/item/food/donut/jelly/slimejelly/choco = 3,
/obj/item/food/donut/jelly/slimejelly/plain = 3,
/obj/item/food/donut/jelly/slimejelly/blumpkin = 2,
/obj/item/food/donut/jelly/slimejelly/bungo = 2,
/obj/item/food/donut/jelly/slimejelly/laugh = 2,
/obj/item/food/donut/jelly/slimejelly/matcha = 2,
/obj/item/food/donut/jelly/slimejelly/trumpet = 2,
)
@@ -235,3 +235,24 @@
/obj/structure/musician/piano,
/obj/structure/musician/piano/minimoog,
)
/obj/effect/spawner/random/structure/shipping_container
name = "shipping container spawner"
icon = 'icons/obj/fluff/containers.dmi'
icon_state = "random_container"
loot = list(
/obj/structure/shipping_container/conarex = 3,
/obj/structure/shipping_container/deforest = 3,
/obj/structure/shipping_container/kahraman = 3,
/obj/structure/shipping_container/kahraman/alt = 3,
/obj/structure/shipping_container/kosmologistika = 3,
/obj/structure/shipping_container/interdyne = 3,
/obj/structure/shipping_container/nakamura = 3,
/obj/structure/shipping_container/nanotrasen = 3,
/obj/structure/shipping_container/nthi = 3,
/obj/structure/shipping_container/vitezstvi = 3,
/obj/structure/shipping_container/cybersun = 2,
/obj/structure/shipping_container/donk_co = 2,
/obj/structure/shipping_container/gorlex = 1,
/obj/structure/shipping_container/gorlex/red = 1,
)
@@ -266,3 +266,22 @@
/obj/item/food/breadslice/moldy/bacteria,
/obj/item/food/pizzaslice/moldy/bacteria,
)
/obj/effect/spawner/random/trash/crushed_can
name = "crushed can spawner"
icon_state = "crushed_can"
loot = list(/obj/item/trash/can)
/// Whether the can will spawn with this spawner's icon_state instead of a random one (used for mapedits)
var/soda_icons = list(
"energy_drink", "monkey_energy", "thirteen_loko", "space_mountain_wind", "dr_gibb", "starkist",
"sodawater", "tonic", "cola", "purple_can", "ice_tea_can",
"sol_dry", "wellcheers", "space beer", "ebisu", "shimauma", "moonlabor",
"space_up", "lemon_lime", "shamblers", "shamblerseldritch", "air", "laughter",
"volt_energy", "melon_soda",
)
/obj/effect/spawner/random/trash/crushed_can/make_item(spawn_loc, type_path_to_make)
var/obj/item/trash/can/crushed_can = .. ()
if(istype(crushed_can))
crushed_can.icon_state = pick(soda_icons)
return crushed_can
@@ -53,6 +53,7 @@
name = "\improper Nanotrasen shipping container"
desc = "A standard-measure shipping container for bulk transport of goods. This one prominently features Nanotrasen's logo, and so presumably could be carrying anything."
icon_state = "nanotrasen"
/obj/structure/shipping_container/nthi
name = "\improper Nanotrasen Heavy Industries shipping container"
desc = "A standard-measure shipping container for bulk transport of goods. This one is from NTHI: Nanotrasen's mining and refining subdivision."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB