Files
KingOfThePing ccccfa57d2 Adds four new Unathi drinks (#21393)
## About PR
This PR adds four new Unathi related drinks and reflavours most of the
existing ones to be less of weird wordplays and jokes.
Requested by the Unathi team.
The new drinks and bottle sprite can be seen below. Please enjoy:
> <img width="547" height="102" alt="image"
src="https://github.com/user-attachments/assets/c2122a83-eccd-4b46-b57a-089e6d81704c"
/>
Tested (hopefully) all changes. Works on my machine. 👍 

### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/obj/drinks.dmi | Captain Gecko (AuroraStation) | CC0 |
| icons/obj/reagent_containers/food/drinks/bottle..dmi | Captain Gecko
(AuroraStation) | CC0 |
2025-10-01 15:56:44 +00:00

179 lines
6.8 KiB
Plaintext

/datum/bounty/reagent
var/required_volume = 10
var/shipped_volume = 0
var/singleton/reagent/wanted_reagent
var/list/possible_descriptions = list("We're interested in testing the quality of our stations' bartenders!",
"We're holding an office party and need some drink variety.",
"We're holding a mixing competition, and you'll receive a bonus for competing.",
"One of our agents has had a hard day and needs to unwind so badly they're willing to put up for a bounty.",
"We need some drinks for a PR campaign setup.",
"One of our bartenders is having trouble getting inspired, and wants to see a different drink.")
/datum/bounty/reagent/completion_string()
return {"[round(shipped_volume)]/[required_volume] Units"}
/datum/bounty/reagent/can_claim()
return ..() && shipped_volume >= required_volume
/datum/bounty/reagent/applies_to(obj/O)
if(!istype(O, /obj/item/reagent_containers))
return FALSE
if(!O.reagents || !O.reagents.has_reagent(wanted_reagent.type))
return FALSE
return shipped_volume < required_volume
/datum/bounty/reagent/ship(obj/O)
if(!applies_to(O))
return
shipped_volume += REAGENT_VOLUME(O.reagents, wanted_reagent.type)
if(shipped_volume > required_volume)
shipped_volume = required_volume
/datum/bounty/reagent/compatible_with(other_bounty)
if(!istype(other_bounty, /datum/bounty/reagent))
return TRUE
var/datum/bounty/reagent/R = other_bounty
return wanted_reagent.type != R.wanted_reagent.type
/datum/bounty/reagent/simple_drink
name = "Simple Drink"
reward_low = 50
reward_high = 150
/datum/bounty/reagent/simple_drink/New()
..()
// Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped.
var/list/possible_reagents = list(
/singleton/reagent/alcohol/antifreeze,
/singleton/reagent/alcohol/andalusia,
/singleton/reagent/alcohol/coffee/b52,
/singleton/reagent/alcohol/bananahonk,
/singleton/reagent/alcohol/bilk,
/singleton/reagent/alcohol/blackrussian,
/singleton/reagent/alcohol/bloodymary,
/singleton/reagent/alcohol/martini,
/singleton/reagent/alcohol/cubalibre,
/singleton/reagent/alcohol/erikasurprise,
/singleton/reagent/alcohol/ginfizz,
/singleton/reagent/alcohol/gintonic,
/singleton/reagent/alcohol/grog,
/singleton/reagent/alcohol/iced_beer,
/singleton/reagent/alcohol/irishcarbomb,
/singleton/reagent/alcohol/manhattan,
/singleton/reagent/alcohol/margarita,
/singleton/reagent/alcohol/gargleblaster,
/singleton/reagent/alcohol/screwdrivercocktail,
/singleton/reagent/alcohol/cobaltvelvet,
/singleton/reagent/alcohol/snowwhite,
/singleton/reagent/alcohol/sidewinderfang,
/singleton/reagent/alcohol/gibsonhooch,
/singleton/reagent/alcohol/manly_dorf,
/singleton/reagent/alcohol/thirteenloko,
/singleton/reagent/alcohol/vodkamartini,
/singleton/reagent/alcohol/whiskeysoda,
/singleton/reagent/alcohol/demonsblood,
/singleton/reagent/alcohol/cinnamonapplewhiskey,
/singleton/reagent/drink/coffee/soy_latte,
/singleton/reagent/drink/coffee/latte,
/singleton/reagent/drink/tea/coco_chaitea,
/singleton/reagent/drink/tea/chaitealatte,
/singleton/reagent/drink/tea/bureacratea,
/singleton/reagent/drink/tea/desert_tea,
/singleton/reagent/drink/tea/hakhma_tea,
/singleton/reagent/drink/tea/portsvilleminttea,
/singleton/reagent/drink/meatshake,
/singleton/reagent/alcohol/butanol/tasteofvictory,
/singleton/reagent/alcohol/butanol/cactuscola,
/singleton/reagent/alcohol/butanol/trizkizki_tea)
var/singleton/reagent/reagent_type = pick(possible_reagents)
wanted_reagent = new reagent_type
name = wanted_reagent.name
description = "[pick(possible_descriptions)] Send a shipment of [name]." //punctuation is already in pick()
required_volume = rand(2, 12) * 10
reward += required_volume * 20 //range from +40(20u) to +240(120u)
//Complex drinks. Requires coordination with other departments for ingredients
/datum/bounty/reagent/complex_drink
name = "Complex Drink"
reward_low = 150
reward_high = 250
/datum/bounty/reagent/complex_drink/New()
..()
// Don't worry about making this comprehensive. It doesn't matter if some drinks are skipped.
var/list/possible_reagents = list(
/singleton/reagent/alcohol/hooch,
/singleton/reagent/alcohol/atomicbomb,
/singleton/reagent/alcohol/beepsky_smash,
/singleton/reagent/alcohol/booger,
/singleton/reagent/alcohol/hippiesdelight,
/singleton/reagent/alcohol/goldschlager,
/singleton/reagent/alcohol/manhattan_proj,
/singleton/reagent/alcohol/neurotoxin,
/singleton/reagent/alcohol/singulo,
/singleton/reagent/alcohol/patron,
/singleton/reagent/alcohol/silencer,
/singleton/reagent/alcohol/cbsc,
/singleton/reagent/alcohol/rixulin_sundae,
/singleton/reagent/drink/xrim,
/singleton/reagent/drink/tea/securitea,
/singleton/reagent/drink/toothpaste/sedantian_firestorm,
/singleton/reagent/alcohol/butanol/janviriheat,
/singleton/reagent/alcohol/butanol/contactwine,
/singleton/reagent/alcohol/butanol/eszkazalsbite)
var/reagent_type = pick(possible_reagents)
wanted_reagent = new reagent_type
name = wanted_reagent.name
description = "[pick(possible_descriptions)] Send a shipment of [name]." //punctuation is already in pick()
required_volume = rand(2, 12) * 10
reward += required_volume * 30 //range from +60(20u) to +360(120u)
//Medicines, toxins, and drugs
/datum/bounty/reagent/chemical
name = "Chemical"
reward_low = 150
reward_high = 350
/datum/bounty/reagent/chemical/New()
..()
// Don't worry about making this comprehensive. It doesn't matter if some chems are skipped.
var/list/possible_reagents = list(
/singleton/reagent/leporazine,
/singleton/reagent/clonexadone,
/singleton/reagent/drugs/mms,
/singleton/reagent/thermite,
/singleton/reagent/cetahydramine,
/singleton/reagent/sterilizine,
/singleton/reagent/mental/emoxanyl,
/singleton/reagent/mental/minaphobin,
/singleton/reagent/mental/neurapan,
/singleton/reagent/rmt,
/singleton/reagent/mortaphenyl,
/singleton/reagent/oxycomorphine,
/singleton/reagent/oculine,
/singleton/reagent/peridaxon,
/singleton/reagent/cataleptinol,
/singleton/reagent/verunol,
/singleton/reagent/hyperzine,
/singleton/reagent/fluvectionem,
/singleton/reagent/pacifier,
/singleton/reagent/dexalin/plus,
/singleton/reagent/ryetalyn,
/singleton/reagent/pneumalin,
/singleton/reagent/acid/polyacid,
/singleton/reagent/mutagen,
/singleton/reagent/drugs/impedrezene,
/singleton/reagent/drugs/night_juice,
/singleton/reagent/toxin/cardox,
/singleton/reagent/toxin/stimm,
/singleton/reagent/drugs/ambrosia_extract)
var/reagent_type = pick(possible_reagents)
wanted_reagent = new reagent_type
name = wanted_reagent.name
description = "One of our labs is in desperate need of [name]. Ship a container of it to be rewarded."
required_volume = rand(2, 12) * 10
reward += required_volume * 40 //range from +80(20u) to +480(120u)