Files
KrysonismandGitHub 075de00420 Chekov's Canister! Adds missing resupply canisters, makes them constructable & spawn in maint,. (#93028)
## About The Pull Request

This is was created because I found several rare and exciting canisters
in game and then finding out there is no way to actually construct the
vendor they belong to!...

<img width="768" height="385" alt="image"
src="https://github.com/user-attachments/assets/70261cea-daaf-41df-a212-21cef6d6bd0c"
/>

### This PR:

* Makes all noteable vendors constructable, if you have the canister. 
* Adds canisters to syndismokes, syndiechem, liberation station,
magivend, shambler's juice and bombuddy
* Replaces the old tptally random canisters spawner, with a variety of
spawners weighted for power and split according to different themes.
* Adds the new main canister spawner to maint. 

### Spawner weights

The random canister spawner from maintenance has a:

* **93,5%** chance to spawn a common station vendor refill(with weights
for wardrobes being somewhat reduced.)
* **6%** chance to spawn a rare and special vendor refill.
* **0.5%** chance to spawn a oddity level., super powerful vendor
refill.

## Why It's Good For The Game

One must never place a filled canister in maint if it isn't going to be
constructed It's wrong to make promises you don't mean to keep.

## Changelog

🆑
add: Nearly all notable vendors are now constructable if you have the
canister.
add Added refill canisters for syndiesmokes, liberation station,
magivend, bombuddy 3000, shambler's juice and syndichem.
add: Random vending refill canisters now have a chance to spawn in
maint.
image: Robco Toolmaker and Centdrobe canisters have new sprites.
/🆑
2025-10-02 20:12:46 +02:00

102 lines
4.6 KiB
Plaintext

/obj/machinery/vending/boozeomat
name = "\improper Booze-O-Mat"
desc = "A technological marvel, supposedly able to mix just the mixture you'd like to drink the moment you ask for one."
icon_state = "boozeomat"
icon_deny = "boozeomat-deny"
panel_type = "panel22"
product_categories = list(
list(
"name" = "Alcoholic",
"icon" = "wine-bottle",
"products" = list(
/obj/item/reagent_containers/cup/glass/bottle/curacao = 5,
/obj/item/reagent_containers/cup/glass/bottle/applejack = 5,
/obj/item/reagent_containers/cup/glass/bottle/wine_voltaic = 5,
/obj/item/reagent_containers/cup/glass/bottle/tequila = 5,
/obj/item/reagent_containers/cup/glass/bottle/rum = 5,
/obj/item/reagent_containers/cup/glass/bottle/cognac = 5,
/obj/item/reagent_containers/cup/glass/bottle/wine = 5,
/obj/item/reagent_containers/cup/glass/bottle/absinthe = 5,
/obj/item/reagent_containers/cup/glass/bottle/vermouth = 5,
/obj/item/reagent_containers/cup/glass/bottle/gin = 5,
/obj/item/reagent_containers/cup/glass/bottle/grenadine = 4,
/obj/item/reagent_containers/cup/glass/bottle/hcider = 5,
/obj/item/reagent_containers/cup/glass/bottle/amaretto = 5,
/obj/item/reagent_containers/cup/glass/bottle/ale = 6,
/obj/item/reagent_containers/cup/glass/bottle/grappa = 5,
/obj/item/reagent_containers/cup/glass/bottle/navy_rum = 5,
/obj/item/reagent_containers/cup/glass/bottle/maltliquor = 6,
/obj/item/reagent_containers/cup/glass/bottle/kahlua = 5,
/obj/item/reagent_containers/cup/glass/bottle/sake = 5,
/obj/item/reagent_containers/cup/glass/bottle/beer = 6,
/obj/item/reagent_containers/cup/glass/bottle/vodka = 5,
/obj/item/reagent_containers/cup/glass/bottle/whiskey = 5,
/obj/item/reagent_containers/cup/glass/bottle/coconut_rum = 5,
/obj/item/reagent_containers/cup/glass/bottle/yuyake = 5,
/obj/item/reagent_containers/cup/glass/bottle/shochu = 5,
/obj/item/reagent_containers/cup/soda_cans/beer = 10,
/obj/item/reagent_containers/cup/soda_cans/beer/rice = 10,
),
),
list(
"name" = "Non-Alcoholic",
"icon" = "bottle-water",
"products" = list(
/obj/item/reagent_containers/cup/glass/ice = 10,
/obj/item/reagent_containers/cup/glass/bottle/juice/limejuice = 4,
/obj/item/reagent_containers/cup/glass/bottle/juice/menthol = 4,
/obj/item/reagent_containers/cup/glass/bottle/juice/cream = 4,
/obj/item/reagent_containers/cup/glass/bottle/juice/orangejuice = 4,
/obj/item/reagent_containers/cup/glass/bottle/juice/tomatojuice = 4,
/obj/item/reagent_containers/cup/soda_cans/sodawater = 15,
/obj/item/reagent_containers/cup/soda_cans/sol_dry = 8,
/obj/item/reagent_containers/cup/soda_cans/cola = 8,
/obj/item/reagent_containers/cup/soda_cans/tonic = 8,
/obj/item/reagent_containers/cup/glass/bottle/hakka_mate = 5,
/obj/item/reagent_containers/cup/soda_cans/melon_soda = 5,
),
),
list(
"name" = "Glassware",
"icon" = "wine-glass",
"products" = list(
/obj/item/reagent_containers/cup/glass/drinkingglass = 30,
/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass = 12,
/obj/item/reagent_containers/cup/glass/flask = 3,
/obj/item/reagent_containers/cup/glass/bottle = 15,
/obj/item/reagent_containers/cup/glass/bottle/small = 15,
),
),
)
contraband = list(
/obj/item/reagent_containers/cup/glass/mug/tea = 12,
/obj/item/reagent_containers/cup/glass/bottle/fernet = 5,
)
premium = list(
/obj/item/reagent_containers/cup/bottle/ethanol = 4,
/obj/item/reagent_containers/cup/glass/bottle/champagne = 5,
/obj/item/reagent_containers/cup/glass/bottle/trappist = 5,
/obj/item/reagent_containers/cup/glass/bottle/bitters = 5,
)
product_slogans = "I hope nobody asks me for a bloody cup o' tea...;Alcohol is humanity's friend. Would you abandon a friend?;Quite delighted to serve you!;Is nobody thirsty on this station?"
product_ads = "Drink up!;Booze is good for you!;Alcohol is humanity's best friend.;Quite delighted to serve you!;Care for a nice, cold beer?;Nothing cures you like booze!;Have a sip!;Have a drink!;Have a beer!;Beer is good for you!;Only the finest alcohol!;Best quality booze since 2053!;Award-winning wine!;Maximum alcohol!;Man loves beer.;A toast for progress!"
refill_canister = /obj/item/vending_refill/boozeomat
default_price = PAYCHECK_CREW * 0.9
extra_price = PAYCHECK_COMMAND
payment_department = ACCOUNT_SRV
light_mask = "boozeomat-light-mask"
/obj/machinery/vending/boozeomat/syndicate
age_restrictions = FALSE
initial_language_holder = /datum/language_holder/syndicate
allow_custom = FALSE
/obj/item/vending_refill/boozeomat
machine_name = "Booze-O-Mat"
icon_state = "refill_booze"