Imports and Contraband 2: Landfill Gacha Addiction (I put trash randomizers into cargo crates and called it content) (#76771)

## About The Pull Request

This is a followup on my previous PR involving cargo imports. I've made
a number of changes and new additions to cargo's imports and contraband.
But I've also changed how Smuggler's Satchels generate loot as well.

### New:
**Abandoned Crates:** You can now order in abandoned crates at a steep
price. Obviously these are just your standard fare abandoned crates, so
they've got a pretty long list of potential contents. Some great, some
utterly not worth the price you paid for the crate. Since they're quite
pricey, you can't order very many quickly. But this does allow cargo
techs the opportunity to spend the round solving puzzles to get
interesting loot.

**Dumpster of Maint Garbage:** This dumpster (similarly named to another
dumpster you can order) is filled with maint trash and potential maint
random spawns. This list is extensive enough that anything spawned in
this crate is likely to be mostly garbage. But, it is more affordable
than abandoned crates. I'd consider this the literally trashier version
of the abandoned crate.

**Shamber's Juice Eldritch Energy! Crate:** A crate with one can of the
extremely rare, short run edition of Shambler's Juice, Eldritch Energy!
This contains 5 units of eldritch essence. Heals heretics, hurts
everyone else! This is a VERY potent poison, but it also happens to be a
handy way for a Cargonian heretic to get a potent healing item without
having to waste knowledge points.

**Animal Hide Crate:** It's a cargo crate full of animal hides! This can
include fairly rare hides and some icebox creature hides as well, like
polar bear hides and wolf sinew. It's not too expensive, and mostly
spits out leather.

**Dreadnog Carton Crate:** A carton full of the worst eggnog imaginable.
This is just something to troll people with. Drink it and you'll get a
massive mood penalty. Dreadnog! May or may not contain space cola!

### Updated:

**Contraband Crate and Smuggler's Satchels:** This has had it's price
increased considerably. But, for good reason. It now contains some more
controlled random items, but also some more valuable contraband as well
as a very rare spawn. The upper end on his contraband can be extremely
valuable, but the majority of the items gained from contraband crates
will probably be either what you can get now (quite weak), or something
a bit more middle of the road (some more unique narcotics).

As a consequence, I've also passed this change onto smuggler's satchels,
as they used the crate to generate its contents. (it literally spawned
and then deleted a contraband crate to generate the contents hoo haa).

I've also increased the number of items in the smuggler's satchel. Since
the randomly spawned smuggler's satchels are quite a bit rarer now there
is only ever two spawned in the map, and spending actual TC on these is
somewhat counterproductive, I don't imagine this will be more beneficial
for scavenger hunters hoping for some interesting goodies.

**Russian Crate (the normal one):** The mosins now spawn in ancient gun
cases. These determine what kind of mosin you can get. 79% of the time,
you get the crap mosin. 20% of the time, you get a good mosin. And 1% of
the time, you get rations. This more tightly controls how many good
mosins are entering into the round and how much of a value purchase the
Russian crate actually is for getting ballistics. Since the process is
even more unlikely than before, it isn't necessarily as guaranteed that
you will get a good mosin. Hell, you might not even get a gun if you're
that unlucky.

**Shocktrooper Crate:** It now has an armor vest and helmet. So, not
only do you get some grenades, you get some protection as well. Since
this is the 'loud' crate, I felt it appropriate to make it slightly more
useful for enabling that.

**Special Ops Crate:** It now contains five mirage grenades and a
chameleon belt, and has had the survival knife improved to a
switchblade. This is probably the weakest of the two crates STILL, but
hopefully these make them a little more interesting and novel by giving
them pretty fun grenade to toy with.

## Why It's Good For The Game

My initial PR hoped to add in a few more interesting purchases for
cargo. I think currently cargo has a slight issue of not having enough
valuable or interesting uses for their money. I think it still has that
problem, but by including more unique crates that allow cargo to provide
some oddities into the round, that might slowly work itself out.

This PR hopes to provide another way to waste their money if they have
an excess amount. Landfill Trash Gambling. Spending it away on complete
junk, which I think is absolutely hilarious when it doesn't work out, as
it is soulful in its design. Definitely not inspired by my recent thrift
shop excursions this month buying and scrounging for furniture and
interesting clothing.

[Relevant](https://www.youtube.com/watch?v=QK8mJJJvaes)

Also, I wanted to buff some of the crates I introduced a bit last time,
and nerf the mosin production somewhat via a more controllable method
that I can actually adjust as necessary down the line.

## Changelog
🆑
fix: Stops manifest generation runtiming when a cargo crate is empty.
add: Abandoned crates are now available via cargo imports.
add: Dumpsters full of maintenance trash are now available via cargo
imports.
add: An ultra-rare can of Shambler's Juice is now available via cargo
imports.
add: Animal hides and leathers can be (unreliably) ordered via cargo
imports.
add: The Dreadnog has entered this realm. To consume, purchase it via
cargo imports.
balance: Contraband Crates (and as a consequence, smuggler's satchels)
now generate more varied goods. Mostly the same, but sometimes you get
something quite different or even valuable.
balance: Mosins generated via the Russian supply crate are a bit more
random, weighing more heavily towards bad mosins than good mosins.
balance: Buffed both the shocktrooper and special op crate. Shocktrooper
now has an armored helmet and vest, and special op now has 5 mirage
grenades and a chameleon belt. The survival knife in the special op
crate is now a switchblade.
/🆑
This commit is contained in:
necromanceranne
2023-07-15 16:27:39 +01:00
committed by GitHub
parent 26590e4ed2
commit cfd40aeef5
23 changed files with 237 additions and 44 deletions
+6 -5
View File
@@ -94,11 +94,12 @@ DEFINE_BITFIELD(foodtypes, list(
"Rocks", \
)
#define DRINK_NICE 1
#define DRINK_GOOD 2
#define DRINK_VERYGOOD 3
#define DRINK_FANTASTIC 4
#define FOOD_AMAZING 5
#define DRINK_REVOLTING 1
#define DRINK_NICE 2
#define DRINK_GOOD 3
#define DRINK_VERYGOOD 4
#define DRINK_FANTASTIC 5
#define FOOD_AMAZING 6
/// Food is "in a container", not in a code sense, but in a literal sense (canned foods)
#define FOOD_IN_CONTAINER (1<<0)
+5
View File
@@ -18,6 +18,11 @@
mood_change = -2
timeout = 6 MINUTES
/datum/mood_event/quality_revolting
description = "That drink was the worst thing I've ever consumed."
mood_change = -8
timeout = 7 MINUTES
/datum/mood_event/quality_nice
description = "That drink wasn't bad at all."
mood_change = 2
@@ -0,0 +1,18 @@
/obj/effect/spawner/random/animalhide
name = "animal hide spawner"
desc = "Fresh animal hide!"
icon_state = "animalhide"
loot = list(
/obj/item/stack/sheet/leather/five = 70,
/obj/item/stack/sheet/animalhide/corgi/five = 10,
/obj/item/stack/sheet/animalhide/cat/five = 10,
/obj/item/stack/sheet/animalhide/monkey/five = 10,
/obj/item/stack/sheet/animalhide/mothroach/five = 5,
/obj/item/stack/sheet/animalhide/carp/five = 5,
/obj/item/stack/sheet/sinew/wolf = 2,
/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide = 2,
/obj/item/stack/sheet/animalhide/xeno/five = 1,
/obj/item/stack/sheet/animalhide/lizard/five = 1,
/obj/item/stack/sheet/animalhide/human/five = 1,
/obj/item/stack/sheet/animalhide/gondola = 1,
)
@@ -2,6 +2,44 @@
name = "contraband loot spawner"
desc = "Pstttthhh! Pass it under the table."
icon_state = "prisoner"
loot = list(
/obj/item/poster/random_contraband = 40,
/obj/item/food/grown/cannabis = 40,
/obj/item/clothing/mask/gas/syndicate = 30,
/obj/item/clothing/neck/necklace/dope = 30,
/obj/item/food/grown/cannabis/rainbow = 20,
/obj/item/reagent_containers/cup/glass/bottle/absinthe = 20,
/obj/item/toy/cards/deck/syndicate = 20,
/obj/item/clothing/under/syndicate/tacticool = 20,
/obj/item/food/grown/cannabis/white = 10,
/obj/item/storage/box/fireworks/dangerous = 10,
/obj/item/storage/pill_bottle/zoom = 10,
/obj/item/storage/pill_bottle/happy = 10,
/obj/item/storage/pill_bottle/lsd = 10,
/obj/item/storage/pill_bottle/aranesp = 10,
/obj/item/storage/pill_bottle/stimulant = 10,
/obj/item/storage/fancy/cigarettes/cigpack_syndicate = 10,
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 10,
/obj/item/storage/box/donkpockets = 10,
/obj/item/reagent_containers/pill/maintenance = 5,
/obj/effect/spawner/random/contraband/plus = 5,
)
/obj/effect/spawner/random/contraband/plus
name = "contraband loot spawner plus"
desc = "Where'd ya find this?"
loot = list(
/obj/effect/spawner/random/contraband/prison = 40,
/obj/item/clothing/under/syndicate = 20,
/obj/item/reagent_containers/cup/bottle/thermite = 20,
/obj/item/reagent_containers/pill/maintenance = 10,
/obj/item/restraints/legcuffs/beartrap = 10,
/obj/effect/spawner/random/contraband/narcotics = 10,
/obj/item/seeds/kronkus = 5,
/obj/item/seeds/odious_puffball = 5,
/obj/item/grenade/empgrenade = 5,
/obj/effect/spawner/random/contraband/armory = 1,
)
/obj/effect/spawner/random/contraband/armory
name = "armory loot spawner"
@@ -21,12 +59,13 @@
icon_state = "pill"
loot = list(
/obj/item/reagent_containers/syringe/contraband/space_drugs,
/obj/item/reagent_containers/syringe/contraband/krokodil,
/obj/item/reagent_containers/syringe/contraband/methamphetamine,
/obj/item/reagent_containers/syringe/contraband/bath_salts,
/obj/item/reagent_containers/syringe/contraband/fentanyl,
/obj/item/reagent_containers/syringe/contraband/morphine,
/obj/item/reagent_containers/syringe/contraband/saturnx,
/obj/item/food/drug/saturnx,
/obj/item/reagent_containers/cup/blastoff_ampoule,
/obj/item/food/drug/moon_rock,
/obj/item/storage/pill_bottle/happy,
/obj/item/storage/pill_bottle/lsd,
/obj/item/storage/pill_bottle/psicodine,
@@ -0,0 +1,16 @@
/obj/effect/spawner/random/mosin
name = "mosin nagant spawner"
desc = "For the Motherland!"
icon_state = "pistol"
loot = list(
/obj/item/gun/ballistic/rifle/boltaction/surplus = 80,
/obj/item/gun/ballistic/rifle/boltaction = 10,
/obj/item/food/rationpack = 1,
)
/obj/effect/spawner/random/mosin/ammo
name = "7.62 stripper clip spawner"
loot = list(
/obj/item/ammo_box/a762/surplus = 80,
/obj/item/ammo_box/a762 = 10,
/obj/item/food/rationpack = 1,
)
@@ -22,6 +22,9 @@ GLOBAL_LIST_INIT(human_recipes, list( \
. = ..()
. += GLOB.human_recipes
/obj/item/stack/sheet/animalhide/human/five
amount = 5
/obj/item/stack/sheet/animalhide/generic
name = "skin"
desc = "A piece of skin."
@@ -42,6 +45,9 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \
new/datum/stack_recipe("gondola suit", /obj/item/clothing/under/costume/gondola, 2, check_density = FALSE, category = CAT_CLOTHING), \
))
/obj/item/stack/sheet/animalhide/corgi/five
amount = 5
/obj/item/stack/sheet/animalhide/mothroach
name = "mothroach hide"
desc = "A thin layer of mothroach hide."
@@ -50,6 +56,9 @@ GLOBAL_LIST_INIT(gondola_recipes, list ( \
inhand_icon_state = null
merge_type = /obj/item/stack/sheet/animalhide/mothroach
/obj/item/stack/sheet/animalhide/mothroach/five
amount = 5
/obj/item/stack/sheet/animalhide/gondola
name = "gondola hide"
desc = "The extremely valuable product of gondola hunting."
@@ -78,6 +87,9 @@ GLOBAL_LIST_INIT(corgi_recipes, list ( \
inhand_icon_state = null
merge_type = /obj/item/stack/sheet/animalhide/cat
/obj/item/stack/sheet/animalhide/cat/five
amount = 5
/obj/item/stack/sheet/animalhide/monkey
name = "monkey hide"
desc = "The by-product of monkey farming."
@@ -95,6 +107,9 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \
. = ..()
. += GLOB.monkey_recipes
/obj/item/stack/sheet/animalhide/monkey/five
amount = 5
/obj/item/stack/sheet/animalhide/lizard
name = "lizard skin"
desc = "Sssssss..."
@@ -103,6 +118,9 @@ GLOBAL_LIST_INIT(monkey_recipes, list ( \
inhand_icon_state = null
merge_type = /obj/item/stack/sheet/animalhide/lizard
/obj/item/stack/sheet/animalhide/lizard/five
amount = 5
/obj/item/stack/sheet/animalhide/xeno
name = "alien hide"
desc = "The skin of a terrible creature."
@@ -120,6 +138,9 @@ GLOBAL_LIST_INIT(xeno_recipes, list ( \
. = ..()
. += GLOB.xeno_recipes
/obj/item/stack/sheet/animalhide/xeno/five
amount = 5
/obj/item/stack/sheet/animalhide/carp
name = "carp scales"
desc = "The scaly skin of a space carp. It looks quite beatiful when detached from the foul creature who once wore it."
@@ -140,6 +161,9 @@ GLOBAL_LIST_INIT(carp_recipes, list ( \
. = ..()
. += GLOB.carp_recipes
/obj/item/stack/sheet/animalhide/carp/five
amount = 5
//don't see anywhere else to put these, maybe together they could be used to make the xenos suit?
/obj/item/stack/sheet/xenochitin
name = "alien chitin"
@@ -207,6 +231,10 @@ GLOBAL_LIST_INIT(leather_recipes, list ( \
/obj/item/stack/sheet/leather/get_main_recipes()
. = ..()
. += GLOB.leather_recipes
/obj/item/stack/sheet/leather/five
amount = 5
/*
* Sinew
*/
+2 -6
View File
@@ -368,12 +368,8 @@
atom_storage.set_holdable(cant_hold_list = list(/obj/item/storage/backpack/satchel/flat)) //muh recursive backpacks)
/obj/item/storage/backpack/satchel/flat/PopulateContents()
var/datum/supply_pack/imports/contraband/smuggled_goods = new
for(var/items in 1 to 2)
var/smuggled_goods_type = pick(smuggled_goods.contains)
new smuggled_goods_type(src)
qdel(smuggled_goods)
for(var/items in 1 to 4)
new /obj/effect/spawner/random/contraband(src)
/obj/item/storage/backpack/satchel/flat/with_tools/PopulateContents()
new /obj/item/stack/tile/iron/base(src)
+22 -1
View File
@@ -309,7 +309,28 @@
balloon_alert(user, "needs 10 tiles!")
return
/obj/item/storage/toolbox/haunted
name = "old toolbox"
custom_materials = list(/datum/material/hauntium = SMALL_MATERIAL_AMOUNT*5)
/obj/item/storage/toolbox/mosincase
name = "ancient gun case"
desc = "A weapon's case. Has the symbol of the Third Soviet Union stamped on the side."
icon = 'icons/obj/storage/case.dmi'
icon_state = "mosin_case"
lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi'
inhand_icon_state = "mosin_case"
has_latches = FALSE
/obj/item/storage/toolbox/mosincase/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY
atom_storage.max_total_storage = 7 //enough to hold ONE mosin and the ammo boxes
atom_storage.max_slots = 4
/obj/item/storage/toolbox/mosincase/PopulateContents()
new /obj/effect/spawner/random/mosin (src)
for(var/i in 1 to 3)
new /obj/effect/spawner/random/mosin/ammo (src)
+1 -1
View File
@@ -135,7 +135,7 @@
var/container_contents = list() // Associative list with the format (item_name = nº of occurences, ...)
for(var/atom/movable/AM in container.contents - manifest_paper)
container_contents[AM.name]++
if((manifest_paper.errors & MANIFEST_ERROR_CONTENTS))
if((manifest_paper.errors & MANIFEST_ERROR_CONTENTS) && container_contents)
for(var/i = 1 to rand(1, round(container.contents.len * 0.5))) // Remove anywhere from one to half of the items
var/missing_item = pick(container_contents)
container_contents[missing_item]--
+54 -29
View File
@@ -87,6 +87,17 @@
var/mob/living/carbon/human/corpse = locate() in .
corpse.death()
/datum/supply_pack/imports/dumpsterloot
name = "A....Dumpster"
desc = "I'm not sure why you bothered to buy this...and why does it cost so much?"
cost = CARGO_CRATE_VALUE * 5
contains = list(
/obj/effect/spawner/random/maintenance/three,
/obj/effect/spawner/random/trash/garbage = 5,
)
crate_name = "putrid dumpster"
crate_type = /obj/structure/closet/crate/trashcart
/datum/supply_pack/imports/error
name = "NULL_ENTRY"
desc = "(*!&@#OKAY, OPERATIVE, WE SEE HOW MUCH MONEY YOU'RE FLAUNTING. FINE. HAVE THIS, AND GOOD LUCK PUTTING IT TOGETHER!#@*$"
@@ -128,34 +139,12 @@
desc = "Psst.. bud... want some contraband? I can get you a poster, some nice cigs, dank, even some \
sponsored items...you know, the good stuff. Just keep it away from the cops, kay?"
contraband = TRUE
cost = CARGO_CRATE_VALUE * 4
cost = CARGO_CRATE_VALUE * 20
contains = list(
/obj/item/poster/random_contraband = 2,
/obj/item/food/grown/cannabis,
/obj/item/food/grown/cannabis/rainbow,
/obj/item/food/grown/cannabis/white,
/obj/item/storage/box/fireworks/dangerous,
/obj/item/storage/pill_bottle/zoom,
/obj/item/storage/pill_bottle/happy,
/obj/item/storage/pill_bottle/lsd,
/obj/item/storage/pill_bottle/aranesp,
/obj/item/storage/pill_bottle/stimulant,
/obj/item/toy/cards/deck/syndicate,
/obj/item/reagent_containers/cup/glass/bottle/absinthe,
/obj/item/clothing/under/syndicate/tacticool,
/obj/item/storage/fancy/cigarettes/cigpack_syndicate,
/obj/item/storage/fancy/cigarettes/cigpack_shadyjims,
/obj/item/clothing/mask/gas/syndicate,
/obj/item/clothing/neck/necklace/dope,
/obj/item/vending_refill/donksoft,
/obj/effect/spawner/random/contraband = 5,
)
crate_name = "crate"
/datum/supply_pack/imports/contraband/fill(obj/structure/closet/crate/our_crate)
for(var/items in 1 to 10)
var/item = pick(contains)
new item(our_crate)
/datum/supply_pack/imports/wt550
name = "Smuggled WT-550 Autorifle Crate"
desc = "(*!&@#GOOD NEWS, OPERATIVE! WE CAN'T GET YOU THE BIG LEAGUE AUTOMATIC WEAPONS. BUT, BY \
@@ -185,7 +174,7 @@
/datum/supply_pack/imports/shocktrooper
name = "Shocktrooper Crate"
desc = "(*!&@#WANT TO PUT THE FEAR OF DEATH INTO YOUR ENEMIES? THIS CRATE OF GOODIES CAN HELP MAKE THAT A REALITY. \
CONTAINS A BOX OF FIVE EMP GRENADES, THREE SMOKEBOMBS, TWO GLUON GRENADES AND TWO FRAG GRENADES!#@*$"
CONTAINS AN ARMOR VEST AND HELMET, A BOX OF FIVE EMP GRENADES, THREE SMOKEBOMBS, TWO GLUON GRENADES AND TWO FRAG GRENADES!#@*$"
hidden = TRUE
cost = CARGO_CRATE_VALUE * 10
contains = list(
@@ -193,19 +182,23 @@
/obj/item/grenade/smokebomb = 3,
/obj/item/grenade/gluon = 2,
/obj/item/grenade/frag = 2,
/obj/item/clothing/suit/armor/vest,
/obj/item/clothing/head/helmet,
)
/datum/supply_pack/imports/specialops
name = "Special Ops Crate"
desc = "(*!&@#THE PIGS ON YOUR TAIL? MAYBE YOU CAN BUY SOME TIME WITH THIS CRATE! \
CONTAINS A CHAMELEON MASK, A CHAMELEON JUMPSUIT AND AN AGENT CARD! AND A KNIFE!!#@*$"
CONTAINS A CHAMELEON MASK, BELT AND JUMPSUIT, MIRAGE GRENADES AND AN AGENT CARD! AND A KNIFE!!#@*$"
hidden = TRUE
cost = CARGO_CRATE_VALUE * 10
contains = list(
/obj/item/clothing/mask/chameleon,
/obj/item/clothing/under/chameleon,
/obj/item/storage/belt/chameleon,
/obj/item/card/id/advanced/chameleon,
/obj/item/knife/combat/survival,
/obj/item/switchblade,
/obj/item/grenade/mirage = 5,
)
/datum/supply_pack/imports/russian
@@ -231,8 +224,7 @@
/obj/item/clothing/mask/russian_balaclava,
/obj/item/clothing/head/helmet/rus_ushanka,
/obj/item/clothing/suit/armor/vest/russian_coat,
/obj/item/gun/ballistic/rifle/boltaction,
/obj/item/gun/ballistic/rifle/boltaction/surplus = 2,
/obj/item/storage/toolbox/mosincase = 2,
)
/datum/supply_pack/imports/russian/fill(obj/structure/closet/crate/our_crate)
@@ -266,3 +258,36 @@
)//so you can properly #cargoniabikergang
crate_name = "biker kit"
crate_type = /obj/structure/closet/crate/large
/datum/supply_pack/imports/abandoned
name = "Abandoned Crate"
desc = "...wait, how did this get here?"
cost = CARGO_CRATE_VALUE * 50
contains = list()
crate_type = /obj/structure/closet/crate/secure/loot
crate_name = "abandoned crate"
contraband = TRUE
dangerous = TRUE //these are literally bombs so....
/datum/supply_pack/imports/shambler_evil
name = "Shamber's Juice Eldritch Energy! Crate"
desc = "~J'I'CE!~"
cost = CARGO_CRATE_VALUE * 50
contains = list(/obj/item/reagent_containers/cup/soda_cans/shamblers/eldritch = 1)
crate_name = "illegal shambler's juice crate"
contraband = TRUE
/datum/supply_pack/imports/hide
name = "Animal Hide Crate"
desc = "Want to not bother slaughtering a bunch of innocent creatures? Here, have some animal pelts! \
Just don't ask where they came from..."
cost = CARGO_CRATE_VALUE * 30
contains = list(/obj/effect/spawner/random/animalhide = 5)
crate_name = "animal hide crate"
/datum/supply_pack/imports/dreadnog
name = "Dreadnog Carton Crate"
desc = "I have eggnog and I must soda."
cost = CARGO_CRATE_VALUE * 5
contains = list(/obj/item/reagent_containers/cup/glass/bottle/juice/dreadnog = 3)
crate_name = "dreadnog crate"
@@ -1455,6 +1455,16 @@
taste_description = "custard and alcohol"
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/ethanol/dreadnog
name = "Dreadnog"
description = "For suffering during a period of joy."
color = "#abb862" // rgb: 252, 253, 198
nutriment_factor = 3 * REAGENTS_METABOLISM
boozepwr = 1
quality = DRINK_REVOLTING
taste_description = "custard and alcohol"
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/ethanol/narsour
name = "Nar'Sour"
description = "Side effects include self-mutilation and hoarding plasteel."
@@ -444,6 +444,12 @@
icon_state = "nog2"
drink_type = FRUIT
/datum/glass_style/has_foodtype/drinking_glass/dreadnog
required_drink_type = /datum/reagent/consumable/ethanol/dreadnog
name = "eggnog"
desc = "For suffering during the best time of the year."
drink_type = FRUIT | GROSS
/datum/glass_style/drinking_glass/narsour
required_drink_type = /datum/reagent/consumable/ethanol/narsour
name = "Nar'Sour"
@@ -33,6 +33,8 @@
if(!(methods & INGEST) || !quality || HAS_TRAIT(exposed_mob, TRAIT_AGEUSIA))
return
switch(quality)
if (DRINK_REVOLTING)
exposed_mob.add_mood_event("quality_drink", /datum/mood_event/quality_revolting)
if (DRINK_NICE)
exposed_mob.add_mood_event("quality_drink", /datum/mood_event/quality_nice)
if (DRINK_GOOD)
@@ -892,6 +892,22 @@
list_reagents = list(/datum/reagent/consumable/cream = 100)
drink_type = DAIRY
/obj/item/reagent_containers/cup/glass/bottle/juice/eggnog
name = "eggnog"
desc = "For enjoying the most wonderful time of the year."
icon = 'icons/obj/drinks/boxes.dmi'
icon_state = "nog2"
list_reagents = list(/datum/reagent/consumable/ethanol/eggnog = 100)
drink_type = FRUIT
/obj/item/reagent_containers/cup/glass/bottle/juice/dreadnog
name = "eggnog"
desc = "For when you want some nondescript soda inside of your eggnog!"
icon = 'icons/obj/drinks/boxes.dmi'
icon_state = "dreadnog"
list_reagents = list(/datum/reagent/consumable/ethanol/dreadnog = 100)
drink_type = FRUIT | GROSS
/obj/item/reagent_containers/cup/glass/bottle/juice/tomatojuice
name = "tomato juice"
desc = "Well, at least it LOOKS like tomato juice. You can't tell with all that redness."
@@ -252,6 +252,14 @@
list_reagents = list(/datum/reagent/consumable/shamblers = 30)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/shamblers/eldritch
name = "Shambler's juice Eldritch Energy!"
desc = "~J'I'CE!~"
icon_state = "shamblerseldritch"
volume = 40
list_reagents = list(/datum/reagent/consumable/shamblers = 30, /datum/reagent/eldritch = 5)
drink_type = SUGAR | JUNKFOOD
/obj/item/reagent_containers/cup/soda_cans/grey_bull
name = "Grey Bull"
desc = "Grey Bull, it gives you gloves!"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 998 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1004 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

+2
View File
@@ -1831,6 +1831,7 @@
#include "code\game\objects\effects\spawners\structure.dm"
#include "code\game\objects\effects\spawners\xeno_egg_delivery.dm"
#include "code\game\objects\effects\spawners\random\ai_module.dm"
#include "code\game\objects\effects\spawners\random\animalhide.dm"
#include "code\game\objects\effects\spawners\random\armory.dm"
#include "code\game\objects\effects\spawners\random\bureaucracy.dm"
#include "code\game\objects\effects\spawners\random\clothing.dm"
@@ -1843,6 +1844,7 @@
#include "code\game\objects\effects\spawners\random\maintenance.dm"
#include "code\game\objects\effects\spawners\random\medical.dm"
#include "code\game\objects\effects\spawners\random\mod.dm"
#include "code\game\objects\effects\spawners\random\mosin_nagant_spawner.dm"
#include "code\game\objects\effects\spawners\random\random.dm"
#include "code\game\objects\effects\spawners\random\structure.dm"
#include "code\game\objects\effects\spawners\random\techstorage.dm"