Skip to content
This repository was archived by the owner on May 22, 2025. It is now read-only.

Commit 5b6dbf5

Browse files
authored
Adds Gummy Bears To Chem Master, Cargo, And More (#16024)
* mmmm gummies * done * god * e * Update uplink_items.dm * Update uplink_items.dm * Update medical.dm * asfa * Update negative.dm * experimental pills-in-big-bottles? * Update negative.dm * Update gummies.dm * oops * Update chemical.dmi
1 parent 6d064d4 commit 5b6dbf5

11 files changed

Lines changed: 426 additions & 10 deletions

File tree

code/_globalvars/lists/maintenance_loot.dm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
112112
/obj/item/storage/toolbox/artistic = 2,
113113
/obj/item/toy/eightball = 1,
114114
/obj/item/reagent_containers/pill/floorpill = 1,
115+
/obj/item/reagent_containers/gummy/floorbear = 1,
115116
/obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
116117
/obj/item/storage/box/mre/menu3 = 1, //Yogs start - MREs
117118
/obj/item/storage/box/mre/menu2 = 2,

code/datums/traits/negative.dm

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -432,18 +432,30 @@
432432
//no mob trait because it's handled uniquely
433433
gain_text = null //handled by trauma
434434
lose_text = null
435+
var/where
435436
medical_record_text = "Patient suffers from acute Reality Dissociation Syndrome and experiences vivid hallucinations."
436437

437438
/datum/quirk/insanity/add()
438439
var/datum/brain_trauma/mild/reality_dissociation/T = new()
439440
var/mob/living/carbon/human/H = quirk_holder
440441
H.gain_trauma(T, TRAUMA_RESILIENCE_ABSOLUTE)
441442

443+
/datum/quirk/insanity/on_spawn()
444+
var/mob/living/carbon/human/H = quirk_holder
445+
var/sanitypills = new /obj/item/storage/pill_bottle/gummies/mindbreaker(get_turf(quirk_holder))
446+
var/list/slots = list(
447+
"in your left pocket" = SLOT_L_STORE,
448+
"in your right pocket" = SLOT_R_STORE,
449+
"in your backpack" = SLOT_IN_BACKPACK
450+
)
451+
where = H.equip_in_one_of_slots(sanitypills, slots, FALSE) || "at your feet"
452+
442453
/datum/quirk/insanity/post_add() //I don't /think/ we'll need this but for newbies who think "roleplay as insane" = "license to kill" it's probably a good thing to have
443454
if(!quirk_holder.mind || quirk_holder.mind.special_role)
444455
return
445-
to_chat(quirk_holder, "<span class='big bold info'>Please note that your dissociation syndrome does NOT give you the right to attack people or otherwise cause any interference to \
446-
the round. You are not an antagonist, and the rules will treat you the same as other crewmembers.</span>")
456+
to_chat(quirk_holder, span_boldnotice("There is a bottle of mindbreaker gummy bears [where]. You're going to need it."))
457+
to_chat(quirk_holder, span_boldwarning("Please note that your dissociation syndrome does NOT give you the right to attack people or otherwise cause any interference to \
458+
the round. You are not an antagonist, and the rules will treat you the same as other crewmembers."))
447459

448460
/datum/quirk/social_anxiety
449461
name = "Social Anxiety"

code/game/objects/items/storage/firstaid.dm

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,3 +762,114 @@
762762
/obj/item/storage/pill_bottle/aiur/PopulateContents()
763763
for(var/i in 1 to 7)
764764
new /obj/item/reagent_containers/pill/aiur(src)
765+
766+
/obj/item/storage/pill_bottle/gummies
767+
name = "large medicine bottle"
768+
desc = "It's an airtight container for storing gummy bears." //until pills are 10u this is all they're for
769+
icon_state = "pill_canister_large"
770+
w_class = WEIGHT_CLASS_SMALL
771+
772+
/obj/item/storage/pill_bottle/gummies/ComponentInitialize()
773+
. = ..()
774+
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
775+
STR.allow_quick_gather = TRUE
776+
STR.click_gather = TRUE
777+
STR.set_holdable(list(/obj/item/reagent_containers/gummy, /obj/item/dice))
778+
STR.max_items = 12
779+
780+
/obj/item/storage/pill_bottle/gummies/vitamin
781+
name = "bottle of vitamin gummies"
782+
desc = "Contains colorful gummy bears to treat vitamin deficiencies."
783+
var/contains = list(/obj/item/reagent_containers/gummy/vitamin/berry,
784+
/obj/item/reagent_containers/gummy/vitamin/orange,
785+
/obj/item/reagent_containers/gummy/vitamin/lime,
786+
/obj/item/reagent_containers/gummy/vitamin/lemon,
787+
/obj/item/reagent_containers/gummy/vitamin/honey,
788+
/obj/item/reagent_containers/gummy/vitamin/apple,
789+
/obj/item/reagent_containers/gummy/vitamin/watermelon,
790+
/obj/item/reagent_containers/gummy/vitamin/peach,
791+
/obj/item/reagent_containers/gummy/vitamin/pineapple,
792+
/obj/item/reagent_containers/gummy/vitamin/banana,
793+
/obj/item/reagent_containers/gummy/vitamin/grape
794+
)
795+
796+
/obj/item/storage/pill_bottle/gummies/vitamin/PopulateContents()
797+
for(var/i in 1 to 12)
798+
var/item = pick(contains)
799+
new item(src)
800+
801+
/obj/item/storage/pill_bottle/gummies/mindbreaker
802+
name = "bottle of mindbreaker gummies"
803+
desc = "Contains gummy bears to treat RDS."
804+
805+
/obj/item/storage/pill_bottle/gummies/mindbreaker/PopulateContents()
806+
for(var/i in 1 to 12)
807+
new /obj/item/reagent_containers/gummy/mindbreaker(src)
808+
809+
/obj/item/storage/pill_bottle/gummies/floorbear
810+
name = "bottle of mystery gummies"
811+
desc = "Contains mystery gummy bears. Eat with caution!"
812+
813+
/obj/item/storage/pill_bottle/gummies/floorbear/PopulateContents()
814+
for(var/i in 1 to rand(1,12))
815+
new /obj/item/reagent_containers/gummy/floorbear(src)
816+
817+
/obj/item/storage/pill_bottle/gummies/floorbear/full/PopulateContents()
818+
for(var/i in 1 to 12)
819+
new /obj/item/reagent_containers/gummy/floorbear(src)
820+
821+
/obj/item/storage/pill_bottle/gummies/omnizine
822+
name = "bottle of medicine gummies"
823+
desc = "Contains medicinal grape gummy bears. Used to treat all manners of injury. Keep out of reach of children."
824+
825+
/obj/item/storage/pill_bottle/gummies/omnizine/PopulateContents()
826+
for(var/i in 1 to 12)
827+
new /obj/item/reagent_containers/gummy/omnizine(src)
828+
829+
/obj/item/storage/pill_bottle/gummies/melatonin
830+
name = "bottle of melatonin gummies"
831+
desc = "Contains melatonin gummy bears. Used to aid in getting to sleep."
832+
833+
/obj/item/storage/pill_bottle/gummies/melatonin/PopulateContents()
834+
for(var/i in 1 to 12)
835+
new /obj/item/reagent_containers/gummy/melatonin(src)
836+
837+
/obj/item/storage/pill_bottle/gummies/mime
838+
name = "bottle of nothing gummies"
839+
desc = "Contains \"Mime\" gummy bears."
840+
841+
/obj/item/storage/pill_bottle/gummies/mime/PopulateContents()
842+
for(var/i in 1 to 12)
843+
new /obj/item/reagent_containers/gummy/mime(src)
844+
845+
/obj/item/storage/pill_bottle/gummies/nitro
846+
name = "bottle of nitrous oxide gummies"
847+
desc = "Contains nitrous oxide gummy bears. Used to put patients to sleep quickly."
848+
849+
/obj/item/storage/pill_bottle/gummies/nitro/PopulateContents()
850+
for(var/i in 1 to 12)
851+
new /obj/item/reagent_containers/gummy/nitro(src)
852+
853+
/obj/item/storage/pill_bottle/gummies/meth
854+
name = "bottle of meth gummies"
855+
desc = "Contains meth gummy bears. Used to treat ADHD...and as a performance enhancer."
856+
857+
/obj/item/storage/pill_bottle/gummies/meth/PopulateContents()
858+
for(var/i in 1 to 12)
859+
new /obj/item/reagent_containers/gummy/meth(src)
860+
861+
/obj/item/storage/pill_bottle/gummies/drugs
862+
name = "bottle of suspicious gummies"
863+
desc = "Contains dubiously legal gummy bears."
864+
865+
/obj/item/storage/pill_bottle/gummies/drugs/PopulateContents()
866+
for(var/i in 1 to 12)
867+
new /obj/item/reagent_containers/gummy/drugs(src)
868+
869+
/obj/item/storage/pill_bottle/gummies/sleepy
870+
name = "bottle of knock-out gummies"
871+
desc = "Contains fast-acting knock-out gummy bears."
872+
873+
/obj/item/storage/pill_bottle/gummies/sleepy/PopulateContents()
874+
for(var/i in 1 to 12)
875+
new /obj/item/reagent_containers/gummy/sleepy(src)

code/modules/cargo/packs.dm

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1456,6 +1456,40 @@
14561456
var/item = pick(contains)
14571457
new item(C)
14581458

1459+
/datum/supply_pack/medical/gummies
1460+
name = "Gummy Bear Bottle Crate"
1461+
desc = "Contains several assorted bottles of gummy bears."
1462+
cost = 4000
1463+
contains = list(/obj/item/storage/pill_bottle/gummies/vitamin,
1464+
/obj/item/storage/pill_bottle/gummies/melatonin,
1465+
/obj/item/storage/pill_bottle/gummies/nitro,
1466+
/obj/item/storage/pill_bottle/gummies/mime)
1467+
crate_name = "gummy bear crate"
1468+
small_item = TRUE
1469+
1470+
/datum/supply_pack/medical/gummies/fill(obj/structure/closet/crate/C)
1471+
for(var/i in 1 to 6)
1472+
var/item = pick(contains)
1473+
new item(C)
1474+
1475+
/datum/supply_pack/medical/gummies/illegal
1476+
name = "Illegal Gummy Bear Bottle Crate"
1477+
desc = "Contains several assorted bottles of less-than-legal gummy bears."
1478+
cost = 5000
1479+
contains = list(/obj/item/storage/pill_bottle/gummies/meth,
1480+
/obj/item/storage/pill_bottle/gummies/drugs,
1481+
/obj/item/storage/pill_bottle/gummies/floorbear,
1482+
/obj/item/storage/pill_bottle/gummies/mindbreaker,
1483+
/obj/item/storage/pill_bottle/gummies/omnizine)
1484+
crate_name = "illegal gummy bear crate"
1485+
contraband = TRUE
1486+
small_item = TRUE
1487+
1488+
/datum/supply_pack/medical/gummies/illegal/fill(obj/structure/closet/crate/C)
1489+
for(var/i in 1 to 6)
1490+
var/item = pick(contains)
1491+
new item(C)
1492+
14591493
/datum/supply_pack/medical/surgery
14601494
name = "Surgical Supplies Crate"
14611495
desc = "Do you want to perform surgery, but don't have one of those fancy shmancy degrees? Just get started with this crate containing a medical duffelbag, Sterilizine spray and collapsible roller bed."
@@ -2391,6 +2425,7 @@
23912425
/obj/item/storage/pill_bottle/lsd,
23922426
/obj/item/storage/pill_bottle/aranesp,
23932427
/obj/item/storage/pill_bottle/stimulant,
2428+
/obj/item/storage/pill_bottle/gummies/omnizine,
23942429
/obj/item/toy/cards/deck/syndicate,
23952430
/obj/item/reagent_containers/food/drinks/bottle/absinthe,
23962431
/obj/item/clothing/under/syndicate/tacticool,

code/modules/reagents/chemistry/machinery/chem_master.dm

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@
265265
vol_each_max = min(40, vol_each_max)
266266
else if (item_type == "bottle")
267267
vol_each_max = min(30, vol_each_max)
268+
else if (item_type == "gummy")
269+
vol_each_max = min(15, vol_each_max)
268270
else if (item_type == "condimentPack")
269271
vol_each_max = min(10, vol_each_max)
270272
else if (item_type == "condimentBottle")
@@ -336,6 +338,14 @@
336338
adjust_item_drop_location(P)
337339
reagents.trans_to(P, vol_each, transfered_by = usr)
338340
return TRUE
341+
if(item_type == "gummy")
342+
var/obj/item/reagent_containers/gummy/P
343+
for(var/i = 0; i < amount; i++)
344+
P = new/obj/item/reagent_containers/gummy(drop_location())
345+
P.name = trim("[name] gummy bear")
346+
adjust_item_drop_location(P)
347+
reagents.trans_to(P, vol_each, transfered_by = usr)
348+
return TRUE
339349
if(item_type == "condimentPack")
340350
var/obj/item/reagent_containers/food/condiment/pack/P
341351
for(var/i = 0; i < amount; i++)

code/modules/uplink/uplink_items.dm

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2418,6 +2418,23 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
24182418
manufacturer = /datum/corporation/traitor/donkco
24192419
illegal_tech = FALSE
24202420

2421+
/datum/uplink_item/badass/syndiebears
2422+
name = "Omnizine Gummy Bears"
2423+
desc = "Omnizine infused gummy bears. Grape flavor. Chew throughly!"
2424+
item = /obj/item/storage/pill_bottle/gummies/omnizine
2425+
cost = 1
2426+
manufacturer = /datum/corporation/traitor/donkco
2427+
surplus_nullcrates = 0 //not because its too strong, but rather because it shouldn't be polluting the pool for other items
2428+
illegal_tech = FALSE
2429+
2430+
/datum/uplink_item/badass/syndiebears/sleepy
2431+
name = "Sleepy Gummy Bears"
2432+
desc = "Sodium Thiopental infused gummy bears. Berry flavor."
2433+
item = /obj/item/storage/pill_bottle/gummies/sleepy
2434+
cost = 2
2435+
manufacturer = /datum/corporation/traitor/donkco
2436+
surplus_nullcrates = 1 //rare. I feel sorry for the poor bastard that gets scammed by these
2437+
illegal_tech = FALSE
24212438

24222439
/datum/uplink_item/badass/syndietape
24232440
name = "Guerrilla Tape"
@@ -2956,3 +2973,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
29562973
desc = "A box of Nanotrasen-approved posters to boost crew morale."
29572974
item = /obj/item/storage/box/official_posters
29582975
cost = 1
2976+
2977+
/datum/uplink_item/nt/gear/syndiebears
2978+
name = "Omnizine Gummy Bears"
2979+
desc = "Omnizine infused gummy bears. Grape flavor. Chew throughly!"
2980+
item = /obj/item/storage/pill_bottle/gummies/omnizine
2981+
cost = 1

code/modules/vending/medical.dm

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,17 @@
2727
/obj/item/stack/medical/ointment/antiseptic = 4,
2828
/obj/item/stack/medical/bone_gel = 4)
2929
contraband = list(/obj/item/reagent_containers/pill/tox = 3,
30-
/obj/item/reagent_containers/pill/morphine = 4,
31-
/obj/item/reagent_containers/pill/charcoal = 6,
32-
/obj/item/storage/box/hug/medical = 1)
30+
/obj/item/reagent_containers/pill/morphine = 4,
31+
/obj/item/reagent_containers/pill/charcoal = 6,
32+
/obj/item/storage/pill_bottle/gummies/mindbreaker = 2,
33+
/obj/item/storage/box/hug/medical = 1)
3334
premium = list(/obj/item/reagent_containers/medspray/synthflesh = 4,
34-
/obj/item/storage/pill_bottle/psicodine = 2,
35-
/obj/item/reagent_containers/autoinjector/medipen = 3,
36-
/obj/item/storage/belt/medical = 3,
37-
/obj/item/wrench/medical = 1,
38-
/obj/item/storage/firstaid/advanced = 2)
35+
/obj/item/storage/pill_bottle/psicodine = 2,
36+
/obj/item/reagent_containers/autoinjector/medipen = 3,
37+
/obj/item/storage/belt/medical = 3,
38+
/obj/item/wrench/medical = 1,
39+
/obj/item/storage/pill_bottle/gummies/vitamin = 2,
40+
/obj/item/storage/firstaid/advanced = 2)
3941
armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 0, BIO = 0, RAD = 0, FIRE = 100, ACID = 50)
4042
resistance_flags = FIRE_PROOF
4143
refill_canister = /obj/item/vending_refill/medical

icons/obj/chemical.dmi

712 Bytes
Binary file not shown.

tgui/packages/tgui/interfaces/ChemMaster.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,10 @@ const PackagingControls = (props, context) => {
232232
bottleAmount,
233233
setBottleAmount,
234234
] = useSharedState(context, 'bottleAmount', 1);
235+
const [
236+
gummyAmount,
237+
setGummyAmount,
238+
] = useSharedState(context, 'gummyAmount', 1);
235239
const [
236240
packAmount,
237241
setPackAmount,
@@ -297,6 +301,32 @@ const PackagingControls = (props, context) => {
297301
volume: 'auto',
298302
})} />
299303
)}
304+
{!condi && (
305+
<PackagingControlsItem
306+
label="Gummy Bears"
307+
amount={gummyAmount}
308+
amountUnit="gummies"
309+
sideNote="max 15u"
310+
onChangeAmount={(e, value) => setGummyAmount(value)}
311+
onCreate={() => act('create', {
312+
type: 'gummy',
313+
amount: gummyAmount,
314+
volume: 'auto',
315+
})} />
316+
)}
317+
{!!condi && (
318+
<PackagingControlsItem
319+
label="Gummy Bears"
320+
amount={gummyAmount}
321+
amountUnit="gummies"
322+
sideNote="max 15u"
323+
onChangeAmount={(e, value) => setGummyAmount(value)}
324+
onCreate={() => act('create', {
325+
type: 'gummy',
326+
amount: gummyAmount,
327+
volume: 'auto',
328+
})} />
329+
)}
300330
{!!condi && (
301331
<PackagingControlsItem
302332
label="Packs"

yogstation.dme

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3820,6 +3820,7 @@
38203820
#include "yogstation\code\modules\reagents\chemistry\recipes\slime_extracts.dm"
38213821
#include "yogstation\code\modules\reagents\reagent_containers\blood_pack.dm"
38223822
#include "yogstation\code\modules\reagents\reagent_containers\bottle.dm"
3823+
#include "yogstation\code\modules\reagents\reagent_containers\gummies.dm"
38233824
#include "yogstation\code\modules\reagents\reagent_containers\hypospray.dm"
38243825
#include "yogstation\code\modules\reagents\reagents\other_reagents.dm"
38253826
#include "yogstation\code\modules\reagents\recipes\pyrotechnics.dm"

0 commit comments

Comments
 (0)