From a5e60d12416daacb7ff6892d712615633a12884c Mon Sep 17 00:00:00 2001 From: L <105110468+kittysmooch@users.noreply.github.com> Date: Mon, 26 Aug 2024 09:58:39 -0700 Subject: [PATCH 1/5] does most of the porting --- .../machines/machine_circuitboards.dm | 4 + .../clutter objects/icons/janitor.dmi | Bin 0 -> 1073 bytes .../alcohol reagents.dm | 899 ++++++++++++++++++ .../modular_food_and_drinks/drink_reagents.dm | 79 ++ .../modular_food_and_drinks/drinks_recipes.dm | 421 ++++++++ .../modular_food_and_drinks/icons/drinks.dmi | Bin 0 -> 30301 bytes .../code/vendor_containers.dm | 89 ++ .../vending_machines/code/vendor_food.dm | 318 +++++++ .../vending_machines/code/vendor_snacks.dm | 302 ++++++ .../vending_machines/code/vendors.dm | 229 +++++ .../icons/imported_quick_foods.dmi | Bin 0 -> 10720 bytes .../icons/imported_vendors.dmi | Bin 0 -> 9002 bytes modular_doppler/vending_machines/readme.md | 26 + tgstation.dme | 7 + 14 files changed, 2374 insertions(+) create mode 100644 modular_doppler/clutter objects/icons/janitor.dmi create mode 100644 modular_doppler/modular_food_and_drinks/alcohol reagents.dm create mode 100644 modular_doppler/modular_food_and_drinks/drink_reagents.dm create mode 100644 modular_doppler/modular_food_and_drinks/drinks_recipes.dm create mode 100644 modular_doppler/modular_food_and_drinks/icons/drinks.dmi create mode 100644 modular_doppler/vending_machines/code/vendor_containers.dm create mode 100644 modular_doppler/vending_machines/code/vendor_food.dm create mode 100644 modular_doppler/vending_machines/code/vendor_snacks.dm create mode 100644 modular_doppler/vending_machines/code/vendors.dm create mode 100644 modular_doppler/vending_machines/icons/imported_quick_foods.dmi create mode 100644 modular_doppler/vending_machines/icons/imported_vendors.dmi create mode 100644 modular_doppler/vending_machines/readme.md diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index 64f4ee35f6076..d5c5dbd4db39e 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -666,6 +666,10 @@ /obj/machinery/vending/wardrobe/science_wardrobe = "SciDrobe", /obj/machinery/vending/wardrobe/sec_wardrobe = "SecDrobe", /obj/machinery/vending/wardrobe/viro_wardrobe = "ViroDrobe", + /obj/machinery/vending/imported = "NT Sustenance Supplier", //DOPPLER ADDITION + /obj/machinery/vending/imported/yangyu = "Fudobenda", //DOPPLER ADDITION + /obj/machinery/vending/imported/mothic = "Nomad Fleet Ration Chit Exchange", //DOPPLER ADDITION + /obj/machinery/vending/imported/tiziran = "Tiziran Imported Delicacies", //DOPPLER ADDITION ) /obj/item/circuitboard/machine/vendor/screwdriver_act(mob/living/user, obj/item/tool) diff --git a/modular_doppler/clutter objects/icons/janitor.dmi b/modular_doppler/clutter objects/icons/janitor.dmi new file mode 100644 index 0000000000000000000000000000000000000000..fb41f7464c829fd55900417f38162c63d232138c GIT binary patch literal 1073 zcmV-11kU@3P)Ayyc9oTt-{0TrOD>rkRREIAm>&h%LI_e)Qcw~xa1u)%X?*2W8=f0qKn*VdZ=)7Y zTmOIn%ocR-@9$rq-~f=+|NsBX(9xx^wg8#`@VqDRS{Ux`?sy~?+uPg3#Kiyb0MRLO z-O4aUhhe(9x}1?ny_`IfdrJ~bD;r!k3_l`@ii&=Ie&oe4JcnGWs;bh`(oIcGRGD#w zv6%JV9CoIP`{zMkr+vV{z_wl~YbOGjP6bLD0L5?|a1tV(8z%CRFw4!+%oZh35*Ay4 zO|Jj|00DGTPE!Ct=GbNc006OiR9JLGWpiV4X>fFDZ*Bkpc$|fi%?g7s5QNX>DT3Zh z|E|3hrFf{XAZxRlr7?j`RP^Z^D)d%zn^`_)+1Wzgt4H0)@>z=+*^{&KCa;I1$QDvT zM{_xgOd}0C?8XNO7-hboQDldXYgP?%123YMrjNm`g!p2j5ib{v4y_YAQk!nVWzy9-%0<@X04JMweA9O|%N0006| zNkl0FrLpk_&RAU*QOEiJe`yloalWKuS6BOxy?onp z_DXm;5Tem&H2+J1{|cYz4YN?NOykr1jbT}qX&E=b-{$@n_`BTSp+M1gOv5l?pyXyA z1w1eFFkqK$!*ZNr5qQ^kg|C!QAn=5*R$-u4wjH}@oYGJ$`_P2Xp{`aPPPMlH>sO#$zxX z0?!M*AL0ZkK-{M%-*?>#@?N*`*bIj76%bM`_xpH0A$+`#=MxeHUQ;$-(3i{?$mRU%;P}jVc?lMV!fX{1OLJ< ze)n3JikKh-$SB!Ugb3!%~$XjADT`|x_ti{00000NkvXXu0mjf*xLdD literal 0 HcmV?d00001 diff --git a/modular_doppler/modular_food_and_drinks/alcohol reagents.dm b/modular_doppler/modular_food_and_drinks/alcohol reagents.dm new file mode 100644 index 0000000000000..2eb87b99c6e9d --- /dev/null +++ b/modular_doppler/modular_food_and_drinks/alcohol reagents.dm @@ -0,0 +1,899 @@ +/*STUFF WE CAN'T USE YET BECAUSE WE HAVEN'T PORTED THEIR PRECURSORS + +// Modular Booze REAGENTS, see the following file for the mixes: modular_nova\modules\customization\modules\food_and_drinks\recipes\drinks_recipes.dm + +/datum/reagent/consumable/ethanol/whiskey + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC //let's not force the detective to change his alcohol brand + + +/datum/reagent/consumable/ethanol/bloody_mary + chemical_flags_nova = REAGENT_BLOOD_REGENERATING +*/ + +/*SYNTHETIC DRINKS +/datum/reagent/consumable/ethanol/synthanol + name = "Synthanol" + description = "A runny liquid with conductive capacities. Its effects on synthetics are similar to those of alcohol on organics." + color = "#1BB1FF" + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + boozepwr = 50 + quality = DRINK_NICE + taste_description = "motor oil" + +/datum/glass_style/drinking_glass/synthanol + required_drink_type = /datum/reagent/consumable/ethanol/synthanol + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "synthanolglass" + name = "glass of synthanol" + desc = "The equivalent of alcohol for synthetic crewmembers. They'd find it awful if they had tastebuds too." + +/datum/reagent/consumable/ethanol/synthanol/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + if(!(affected_mob.mob_biotypes & MOB_ROBOTIC)) + affected_mob.reagents.remove_reagent(type, 3.6 * REM * seconds_per_tick) //gets removed from organics very fast + if(prob(25)) + affected_mob.vomit(VOMIT_CATEGORY_DEFAULT, lost_nutrition = 5) + return ..() + +/datum/reagent/consumable/ethanol/synthanol/expose_mob(mob/living/carbon/C, method=TOUCH, volume) + . = ..() + if(C.mob_biotypes & MOB_ROBOTIC) + return + if(method == INGEST) + to_chat(C, pick(span_danger("That was awful!"), span_danger("That was disgusting!"))) + +/datum/reagent/consumable/ethanol/synthanol/robottears + name = "Robot Tears" + description = "An oily substance that an IPC could technically consider a 'drink'." + color = "#363636" + quality = DRINK_GOOD + boozepwr = 25 + taste_description = "existential angst" + +/datum/glass_style/drinking_glass/synthanol/robottears + required_drink_type = /datum/reagent/consumable/ethanol/synthanol/robottears + icon_state = "robottearsglass" + name = "glass of robot tears" + desc = "No robots were hurt in the making of this drink." + +/datum/reagent/consumable/ethanol/synthanol/trinary + name = "Trinary" + description = "A fruit drink meant only for synthetics, however that works." + color = "#ADB21f" + quality = DRINK_GOOD + boozepwr = 20 + taste_description = "modem static" + +/datum/glass_style/drinking_glass/synthanol/trinary + required_drink_type = /datum/reagent/consumable/ethanol/synthanol/trinary + icon_state = "trinaryglass" + name = "glass of trinary" + desc = "Colorful drink made for synthetic crewmembers. It doesn't seem like it would taste well." + +/datum/reagent/consumable/ethanol/synthanol/servo + name = "Servo" + description = "A drink containing some organic ingredients, but meant only for synthetics." + color = "#5B3210" + quality = DRINK_GOOD + boozepwr = 25 + taste_description = "motor oil and cocoa" + +/datum/glass_style/drinking_glass/synthanol/servo + required_drink_type = /datum/reagent/consumable/ethanol/synthanol/servo + icon_state = "servoglass" + name = "glass of servo" + desc = "Chocolate - based drink made for IPCs. Not sure if anyone's actually tried out the recipe." + +/datum/reagent/consumable/ethanol/synthanol/uplink + name = "Uplink" + description = "A potent mix of alcohol and synthanol. Will only work on synthetics." + color = "#E7AE04" + quality = DRINK_GOOD + boozepwr = 15 + taste_description = "a GUI in visual basic" + +/datum/glass_style/drinking_glass/synthanol/uplink + required_drink_type = /datum/reagent/consumable/ethanol/synthanol/uplink + icon_state = "uplinkglass" + name = "glass of uplink" + desc = "An exquisite mix of the finest liquoirs and synthanol. Meant only for synthetics." + +/datum/reagent/consumable/ethanol/synthanol/synthncoke + name = "Synth 'n Coke" + description = "The classic drink adjusted for a robot's tastes." + color = "#7204E7" + quality = DRINK_GOOD + boozepwr = 25 + taste_description = "fizzy motor oil" + +/datum/glass_style/drinking_glass/synthanol/synthncoke + required_drink_type = /datum/reagent/consumable/ethanol/synthanol/synthncoke + icon_state = "synthncokeglass" + name = "glass of synth 'n coke" + desc = "Classic drink altered to fit the tastes of a robot, contains de-rustifying properties. Bad idea to drink if you're made of carbon." + +/datum/reagent/consumable/ethanol/synthanol/synthignon + name = "Synthignon" + description = "Someone mixed wine and alcohol for robots. Hope you're proud of yourself." + color = "#D004E7" + quality = DRINK_GOOD + boozepwr = 25 + taste_description = "fancy motor oil" + +/datum/glass_style/drinking_glass/synthanol/synthignon + required_drink_type = /datum/reagent/consumable/ethanol/synthanol/synthignon + icon_state = "synthignonglass" + name = "glass of synthignon" + desc = "Someone mixed good wine and robot booze. Romantic, but atrocious." +*/ +// Other Booze + +/datum/reagent/consumable/ethanol/hot_toddy + name = "Hot Toddy" + description = "An old fashioned cocktail made of honey, rum, and tea." + color = "#e4830d" + boozepwr = 40 + quality = DRINK_GOOD + taste_description = "sweet spiced tea" + +/datum/glass_style/drinking_glass/hot_toddy + required_drink_type = /datum/reagent/consumable/ethanol/hot_toddy + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "hot_toddy" + name = "hot toddy glass" + desc = "An old fashioned cocktail made of honey, rum, and tea, it tastes like sweet holiday spices." + +/datum/reagent/consumable/ethanol/hellfire + name = "Hellfire" + description = "A nice drink that isn't quite as hot as it looks." + color = "#fb2203" + boozepwr = 60 + quality = DRINK_VERYGOOD + taste_description = "cold flames that lick at the top of your mouth" + +/datum/glass_style/drinking_glass/hellfire + required_drink_type = /datum/reagent/consumable/ethanol/hellfire + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "hellfire" + name = "glass of hellfire" + desc = "An amber colored drink that isn't quite as hot as it looks." + +/datum/reagent/consumable/ethanol/hellfire/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + affected_mob.adjust_bodytemperature(30 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * seconds_per_tick, 0, BODYTEMP_NORMAL + 30) + +/datum/reagent/consumable/ethanol/sins_delight + name = "Sin's Delight" + description = "The drink smells like the seven sins." + color = "#330000" + boozepwr = 66 + quality = DRINK_FANTASTIC + taste_description = "overpowering sweetness with a touch of sourness, followed by iron and the sensation of a warm summer breeze" +// chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING //component drink is demon's blood, thus this drink is made with blood so hemophages can comfortably drink it + +/datum/glass_style/drinking_glass/sins_delight + required_drink_type = /datum/reagent/consumable/ethanol/sins_delight + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "sins_delight" + name = "glass of sin's delight" + desc = "You can smell the seven sins rolling off the top of the glass." + +/datum/reagent/consumable/ethanol/strawberry_daiquiri + name = "Strawberry Daiquiri" + description = "Pink looking alcoholic drink." + boozepwr = 20 + color = "#FF4A74" + quality = DRINK_NICE + taste_description = "sweet strawberry, lime and the ocean breeze" + +/datum/glass_style/drinking_glass/strawberry_daiquiri + required_drink_type = /datum/reagent/consumable/ethanol/strawberry_daiquiri + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "strawberry_daiquiri" + name = "glass of strawberry daiquiri" + desc = "Pink looking drink with flowers and a big straw to sip it. Looks sweet and refreshing, perfect for warm days." + +/datum/reagent/consumable/ethanol/liz_fizz + name = "Liz Fizz" + description = "Triple citrus layered with some ice and cream." + boozepwr = 0 + color = "#D8FF59" + quality = DRINK_NICE + taste_description = "brain freezing sourness" + +/datum/glass_style/drinking_glass/liz_fizz + required_drink_type = /datum/reagent/consumable/ethanol/liz_fizz + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "liz_fizz" + name = "glass of liz fizz" + desc = "Looks like a citrus sherbet seperated in layers? Why would anyone want that is beyond you." + +/datum/reagent/consumable/ethanol/miami_vice + name = "Miami Vice" + description = "A drink layering Pina Colada and Strawberry Daiquiri" + boozepwr = 30 + color = "#D8FF59" + quality = DRINK_FANTASTIC + taste_description = "sweet and refreshing flavor, complemented with strawberries and coconut, and hints of citrus" + +/datum/glass_style/drinking_glass/miami_vice + required_drink_type = /datum/reagent/consumable/ethanol/miami_vice + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "miami_vice" + name = "glass of miami vice" + desc = "Strawberries and coconut, like yin and yang." + +/datum/reagent/consumable/ethanol/malibu_sunset + name = "Malibu Sunset" + description = "A drink consisting of creme de coconut and tropical juices" + boozepwr = 20 + color = "#FF9473" + quality = DRINK_VERYGOOD + taste_description = "coconut, with orange and grenadine accents" + +/datum/glass_style/drinking_glass/malibu_sunset + required_drink_type = /datum/reagent/consumable/ethanol/malibu_sunset + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "malibu_sunset" + name = "glass of malibu sunset" + desc = "Tropical looking drinks, with ice cubes hovering on the surface and grenadine coloring the bottom." + +/datum/reagent/consumable/ethanol/hotlime_miami + name = "Hotlime Miami" + description = "The essence of the 90's, if they were a bloody mess that is." + boozepwr = 40 + color = "#A7FAE8" + quality = DRINK_FANTASTIC + taste_description = "coconut and aesthetic violence" + +/datum/glass_style/drinking_glass/hotlime_miami + required_drink_type = /datum/reagent/consumable/ethanol/hotlime_miami + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "hotlime_miami" + name = "glass of hotlime miami" + desc = "This looks very aesthetically pleasing." + +/datum/reagent/consumable/ethanol/hotlime_miami/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + affected_mob.set_drugginess(1.5 MINUTES * REM * seconds_per_tick) + if(affected_mob.adjustStaminaLoss(-2 * REM * seconds_per_tick, updating_stamina = FALSE)) + return UPDATE_MOB_HEALTH + +/datum/reagent/consumable/ethanol/coggrog + name = "Cog Grog" + description = "Now you can fill yourself with the power of Ratvar!" + color = rgb(255, 201, 49) + boozepwr = 10 + quality = DRINK_FANTASTIC + taste_description = "a brass taste with a hint of oil" + +/datum/glass_style/drinking_glass/coggrog + required_drink_type = /datum/reagent/consumable/ethanol/coggrog + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "coggrog" + name = "glass of cog grog" + desc = "Not even Ratvar's Four Generals could withstand this! Qevax Jryy!" + +/datum/reagent/consumable/ethanol/badtouch + name = "Bad Touch" + description = "A sour and vintage drink. Some say the inventor gets slapped a lot." + color = rgb(31, 181, 99) + boozepwr = 35 + quality = DRINK_GOOD + taste_description = "a slap to the face" + +/datum/glass_style/drinking_glass/badtouch + required_drink_type = /datum/reagent/consumable/ethanol/badtouch + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "badtouch" + name = "glass of bad touch" + desc = "We're nothing but mammals after all." + +/datum/reagent/consumable/ethanol/marsblast + name = "Marsblast" + description = "A spicy and manly drink in honor of the first colonists on Mars." + color = rgb(246, 143, 55) + boozepwr = 70 + quality = DRINK_FANTASTIC + taste_description = "hot red sand" + +/datum/glass_style/drinking_glass/marsblast + required_drink_type = /datum/reagent/consumable/ethanol/marsblast + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "marsblast" + name = "glass of marsblast" + desc = "One of these is enough to leave your face as red as the planet." + +/datum/reagent/consumable/ethanol/mercuryblast + name = "Mercuryblast" + description = "A sour burningly cold drink that's sure to chill the drinker." + color = rgb(29, 148, 213) + boozepwr = 40 + quality = DRINK_VERYGOOD + taste_description = "chills down your spine" + +/datum/glass_style/drinking_glass/mercuryblast + required_drink_type = /datum/reagent/consumable/ethanol/mercuryblast + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "mercuryblast" + name = "glass of mercuryblast" + desc = "No thermometers were harmed in the creation of this drink" + +/datum/reagent/consumable/ethanol/mercuryblast/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + affected_mob.adjust_bodytemperature(-30 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * seconds_per_tick, T0C) + +/datum/reagent/consumable/ethanol/piledriver + name = "Piledriver" + description = "A bright drink that leaves you with a burning sensation." + color = rgb(241, 146, 59) + boozepwr = 45 + quality = DRINK_NICE + taste_description = "a fire in your throat" + +/datum/glass_style/drinking_glass/piledriver + required_drink_type = /datum/reagent/consumable/ethanol/piledriver + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "piledriver" + name = "glass of piledriver" + desc = "Not the only thing to leave your throat sore." + +/datum/reagent/consumable/ethanol/zenstar + name = "Zen Star" + description = "A sour and bland drink, rather disappointing." + color = rgb(51, 87, 203) + boozepwr = 35 + quality = DRINK_NICE + taste_description = "disappointment" + +/datum/glass_style/drinking_glass/zenstar + required_drink_type = /datum/reagent/consumable/ethanol/zenstar + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "zenstar" + name = "glass of zen star" + desc = "You'd think something so balanced would actually taste nice... you'd be dead wrong." + + +/* MORE RACE SPECIFIC STUFF WE DON'T HAVE SUPPORT FOR YET +// RACE SPECIFIC DRINKS + +/datum/reagent/consumable/ethanol/coldscales + name = "Coldscales" + color = "#5AEB52" //(90, 235, 82) + description = "A cold looking drink made for people with scales." + boozepwr = 50 //strong! + taste_description = "dead flies" + +/datum/glass_style/drinking_glass/coldscales + required_drink_type = /datum/reagent/consumable/ethanol/coldscales + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "coldscales" + name = "glass of coldscales" + desc = "A soft green drink that looks inviting!" + +/datum/reagent/consumable/ethanol/coldscales/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(islizard(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/oil_drum + name = "Oil Drum" + color = "#000000" //(0, 0, 0) + description = "Industrial grade oil mixed with some ethanol to make it a drink. Somehow not known to be toxic." + boozepwr = 45 + taste_description = "oil spill" + +/datum/glass_style/drinking_glass/oil_drum + required_drink_type = /datum/reagent/consumable/ethanol/oil_drum + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "oil_drum" + name = "drum of oil" + desc = "A gray can of booze and oil..." + +/datum/reagent/consumable/ethanol/oil_drum/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(MOB_ROBOTIC) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/nord_king + name = "Nord King" + color = "#EB1010" //(235, 16, 16) + description = "Strong mead mixed with more honey and ethanol. Beloved by its human patrons." + boozepwr = 50 //strong! + taste_description = "honey and red wine" + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +/datum/glass_style/drinking_glass/nord_king + required_drink_type = /datum/reagent/consumable/ethanol/nord_king + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "nord_king" + name = "keg of nord king" + desc = "A dripping keg of red mead." + +/datum/reagent/consumable/ethanol/nord_king/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(ishumanbasic(exposed_mob) || isdwarf(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/velvet_kiss + name = "Velvet Kiss" + color = "#EB1010" //(235, 16, 16) + description = "A bloody drink mixed with wine." + boozepwr = 10 //weak + taste_description = "iron with grapejuice" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + +/datum/glass_style/drinking_glass/velvet_kiss + required_drink_type = /datum/reagent/consumable/ethanol/velvet_kiss + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "velvet_kiss" + name = "glass of velvet kiss" + desc = "Red and white drink for the upper classes or undead." + +/datum/reagent/consumable/ethanol/velvet_kiss/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(iszombie(exposed_mob) || isvampire(exposed_mob) || isdullahan(exposed_mob) || ishemophage(exposed_mob)) //Rare races! + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/velvet_kiss/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) + . = ..() + if(drinker.blood_volume < BLOOD_VOLUME_NORMAL) + drinker.blood_volume = min(drinker.blood_volume + (1 * REM * seconds_per_tick), BLOOD_VOLUME_NORMAL) //Same as Bloody Mary, as it is roughly the same difficulty to make. Gives hemophages a bit more choices to supplant their blood levels. + +/datum/reagent/consumable/ethanol/abduction_fruit + name = "Abduction Fruit" + color = "#DEFACD" //(222, 250, 205) + description = "Mixing of juices to make an alien taste." + boozepwr = 80 //Strong + taste_description = "grass and lime" + +/datum/glass_style/drinking_glass/abduction_fruit + required_drink_type = /datum/reagent/consumable/ethanol/abduction_fruit + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "abduction_fruit" + name = "glass of abduction fruit" + desc = "Mixed fruits that were never meant to be mixed..." + +/datum/reagent/consumable/ethanol/abduction_fruit/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isabductor(exposed_mob) || isxenohybrid(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/bug_zapper + name = "Bug Zapper" + color = "#F5882A" //(222, 250, 205) + description = "Copper and lemon juice. Hardly even a drink." + boozepwr = 5 //No booze really + taste_description = "copper and AC power" + +/datum/glass_style/drinking_glass/bug_zapper + required_drink_type = /datum/reagent/consumable/ethanol/bug_zapper + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "bug_zapper" + name = "glass of bug zapper" + desc = "An odd mix of copper, lemon juice and power meant for non-human consumption." + +/datum/reagent/consumable/ethanol/bug_zapper/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isinsect(exposed_mob) || isflyperson(exposed_mob) || ismoth(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/mush_crush + name = "Mush Crush" + color = "#F5882A" //(222, 250, 205) + description = "Soil in a glass." + boozepwr = 5 //No booze really + taste_description = "dirt and iron" + +/datum/glass_style/drinking_glass/mush_crush + required_drink_type = /datum/reagent/consumable/ethanol/mush_crush + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "mush_crush" + name = "glass of mush crush" + desc = "Popular among people that want to grow their own food rather than drink the soil." + +/datum/reagent/consumable/ethanol/mush_crush/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(ispodperson(exposed_mob) || issnail(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/hollow_bone + name = "Hollow Bone" + color = "#FCF7D4" //(252, 247, 212) + description = "Shockingly none-harmful mix of toxins and milk." + boozepwr = 15 + taste_description = "Milk and salt" + +/datum/glass_style/drinking_glass/hollow_bone + required_drink_type = /datum/reagent/consumable/ethanol/hollow_bone + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "hollow_bone" + name = "skull of hollow bone" + desc = "Mixing of milk and bone hurting juice for enjoyment for rather skinny people." + +/datum/reagent/consumable/ethanol/hollow_bone/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isplasmaman(exposed_mob) || isskeleton(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/jell_wyrm + name = "Jell Wyrm" + color = "#FF6200" //(255, 98, 0) + description = "Horrible mix of CO2, toxins, and heat. Meant for slime based life." + boozepwr = 40 + taste_description = "tropical sea" + +/datum/glass_style/drinking_glass/jell_wyrm + required_drink_type = /datum/reagent/consumable/ethanol/jell_wyrm + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "jell_wyrm" + name = "glass of jell wyrm" + desc = "A bubbly drink that is rather inviting to those that don't know who it's meant for." + +/datum/reagent/consumable/ethanol/jell_wyrm/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + . = ..() + if(prob(20)) + if(affected_mob.adjustToxLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE)) + return UPDATE_MOB_HEALTH + +#define JELLWYRM_DISGUST 25 + +/datum/reagent/consumable/ethanol/jell_wyrm/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isjellyperson(exposed_mob) || isslimeperson(exposed_mob) || isluminescent(exposed_mob)) + quality = RACE_DRINK + else //if youre not a slime, jell wyrm should be GROSS + exposed_mob.adjust_disgust(JELLWYRM_DISGUST) + return ..() + +#undef JELLWYRM_DISGUST + +/datum/reagent/consumable/ethanol/laval_spit //Yes Laval + name = "Laval Spit" + color = "#DE3009" //(222, 48, 9) + description = "Heat minerals and some mauna loa. Meant for rock based life." + boozepwr = 30 + taste_description = "tropical island" + +/datum/glass_style/drinking_glass/laval_spit + required_drink_type = /datum/reagent/consumable/ethanol/laval_spit + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "laval_spit" + name = "glass of laval spit" + desc = "Piping hot drink for those who can stomach the heat of lava." + +/datum/reagent/consumable/ethanol/laval_spit/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isgolem(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/frisky_kitty + name = "Frisky Kitty" + color = "#FCF7D4" //(252, 247, 212) + description = "Warm milk mixed with catnip." + boozepwr = 0 + taste_description = "Warm milk and catnip" + +/datum/glass_style/drinking_glass/frisky_kitty + required_drink_type = /datum/reagent/consumable/ethanol/frisky_kitty + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "frisky_kitty" + name = "cup of frisky kitty" + desc = "Warm milk and some catnip." + +/datum/reagent/consumable/ethanol/frisky_kitty/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isfeline(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + + +/datum/reagent/consumable/ethanol/bloodshot_base + name = "Bloodshot Base" + description = "The bootleg blend of nutrients and alcohol that goes into making Bloodshots. Doesn't taste too great on its own, for Hemophages at least." + color = "#c29ca1" + boozepwr = 25 // Still more concentrated than in Bloodshot. + taste_description = "nutritious mix with an alcoholic kick to it" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + + +/datum/reagent/consumable/ethanol/bloodshot + name = "Bloodshot" + description = "The history of the 'Bloodshot' is based in a mix of flavor-neutral chems devised to help deliver nutrients to a Hemophage's tumorous organs. Due to the expense of the real thing and the clinical nature of it, this liquor has been designed as a 'improvised' alternative; though, still tasting like a hangover cure. It smells like iron, giving a clue to the key ingredient." + color = "#a30000" + boozepwr = 20 // The only booze in it is Bloody Mary + taste_description = "blood filled to the brim with nutrients of all kinds" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + chemical_flags_skyrat = REAGENT_BLOOD_REGENERATING + + +/datum/glass_style/drinking_glass/bloodshot + required_drink_type = /datum/reagent/consumable/ethanol/bloodshot + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "bloodshot" + name = "glass of bloodshot" + desc = "The history of the 'Bloodshot' is based in a mix of flavor-neutral chems devised to help deliver nutrients to a Hemophage's tumorous organs. Due to the expense of the real thing and the clinical nature of it, this liquor has been designed as a 'improvised' alternative; though, still tasting like a hangover cure. It smells like iron, giving a clue to the key ingredient." + + +#define BLOODSHOT_DISGUST 25 + +/datum/reagent/consumable/ethanol/bloodshot/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(ishemophage(exposed_mob)) + quality = RACE_DRINK + + else if(exposed_mob.blood_volume < exposed_mob.blood_volume_normal) + quality = DRINK_GOOD + + if(!quality) // Basically, you don't have a reason to want to have this in your system, it doesn't taste good to you! + exposed_mob.adjust_disgust(BLOODSHOT_DISGUST) + + return ..() + +#undef BLOODSHOT_DISGUST + +/datum/reagent/consumable/ethanol/bloodshot/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) + . = ..() + if(drinker.blood_volume < drinker.blood_volume_normal) + drinker.blood_volume = max(drinker.blood_volume, min(drinker.blood_volume + (3 * REM * seconds_per_tick), BLOOD_VOLUME_NORMAL)) //Bloodshot quickly restores blood loss. + +/datum/reagent/consumable/ethanol/blizzard_brew + name = "Blizzard Brew" + description = "An ancient recipe. Served best chilled as much as dwarvenly possible." + color = rgb(180, 231, 216) + boozepwr = 25 + metabolization_rate = 1.25 * REAGENTS_METABOLISM + taste_description = "ancient icicles" + overdose_threshold = 25 + var/obj/structure/ice_stasis/cube + var/atom/movable/screen/alert/status_effect/freon/cryostylane_alert + +/datum/glass_style/drinking_glass/blizzard_brew + required_drink_type = /datum/reagent/consumable/ethanol/blizzard_brew + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "blizzard_brew" + name = "glass of Blizzard Brew" + desc = "An ancient recipe. Served best chilled as much as dwarvenly possible." + +/datum/reagent/consumable/ethanol/blizzard_brew/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isdwarf(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_NICE + return ..() + +/datum/reagent/consumable/ethanol/blizzard_brew/overdose_start(mob/living/carbon/drinker) + . = ..() + cube = new /obj/structure/ice_stasis(get_turf(drinker)) + cube.color = COLOR_CYAN + cube.set_anchored(TRUE) + drinker.forceMove(cube) + cryostylane_alert = drinker.throw_alert("cryostylane_alert", /atom/movable/screen/alert/status_effect/freon/cryostylane) + cryostylane_alert.attached_effect = src //so the alert can reference us, if it needs to + +/datum/reagent/consumable/ethanol/blizzard_brew/on_mob_delete(mob/living/carbon/drinker, amount) + QDEL_NULL(cube) + drinker.clear_alert("cryostylane_alert") + return ..() + +/datum/reagent/consumable/ethanol/molten_mead + name = "Molten Mead" + description = "Famously known to set beards aflame. Ingest at your own risk!" + color = rgb(224, 78, 16) + boozepwr = 35 + metabolization_rate = 1.25 * REAGENTS_METABOLISM + taste_description = "burning wasps" + overdose_threshold = 25 + +/datum/glass_style/drinking_glass/molten_mead + required_drink_type = /datum/reagent/consumable/ethanol/molten_mead + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "molten_mead" + name = "glass of Molten Mead" + desc = "Famously known to set beards aflame. Ingest at your own risk!" + +/datum/reagent/consumable/ethanol/molten_mead/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isdwarf(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_VERYGOOD + return ..() + +/datum/reagent/consumable/ethanol/molten_mead/overdose_start(mob/living/carbon/drinker) + drinker.adjust_fire_stacks(2) + drinker.ignite_mob() + ..() +*/ +/datum/reagent/consumable/ethanol/hippie_hooch + name = "Hippie Hooch" + description = "Peace and love! Under request of the HR department, this drink is sure to sober you up quickly." + color = rgb(77, 138, 34) + boozepwr = -20 + taste_description = "eggy hemp" + var/static/list/status_effects_to_clear = list( + /datum/status_effect/confusion, + /datum/status_effect/dizziness, + /datum/status_effect/drowsiness, + /datum/status_effect/speech/slurring/drunk, + ) + +/datum/glass_style/drinking_glass/hippie_hooch + required_drink_type = /datum/reagent/consumable/ethanol/hippie_hooch + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "hippie_hooch" + name = "glass of Hippie Hooch" + desc = "Peace and love! Under request of the HR department, this drink is sure to sober you up quickly." + +/datum/reagent/consumable/ethanol/hippie_hooch/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isdwarf(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_FANTASTIC + return ..() + +/datum/reagent/consumable/ethanol/hippie_hooch/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + for(var/effect in status_effects_to_clear) + affected_mob.remove_status_effect(effect) + affected_mob.reagents.remove_reagent(/datum/reagent/consumable/ethanol, 3 * REM * seconds_per_tick, include_subtypes = TRUE) + . = ..() + if(affected_mob.adjustToxLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)) + . = UPDATE_MOB_HEALTH + affected_mob.adjust_drunk_effect(-10 * REM * seconds_per_tick) + +/datum/reagent/consumable/ethanol/research_rum + name = "Research Rum" + description = "Cooked up by dwarven scientists, this glowing pink brew is sure to supercharge your thinking. How? Science!" + color = rgb(169, 69, 169) + boozepwr = 50 + taste_description = "slippery grey matter" + +/datum/glass_style/drinking_glass/research_rum + required_drink_type = /datum/reagent/consumable/ethanol/research_rum + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "research_rum" + name = "glass of Research Rum" + desc = "Cooked up by dwarven scientists, this glowing pink brew is sure to supercharge your thinking. How? Science!" + +/datum/reagent/consumable/ethanol/research_rum/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isdwarf(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_GOOD + return ..() + +/datum/reagent/consumable/ethanol/research_rum/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) + . = ..() + if(prob(5)) + drinker.say(pick_list_replacements(VISTA_FILE, "ballmer_good_msg"), forced = "ballmer") + +/datum/reagent/consumable/ethanol/golden_grog + name = "Golden Grog" + description = "A drink concocted by a dwarven Quartermaster who had too much time and money on his hands. Commonly ordered by influencers looking to flaunt their wealth." + color = rgb(247, 230, 141) + boozepwr = 70 + taste_description = "sweet credit holochips" + +/datum/glass_style/drinking_glass/golden_grog + required_drink_type = /datum/reagent/consumable/ethanol/golden_grog + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "golden_grog" + name = "glass of Golden Grog" + desc = "A drink concocted by a dwarven Quartermaster who had too much time and money on his hands. Commonly ordered by influencers looking to flaunt their wealth." + +/datum/reagent/consumable/ethanol/golden_grog/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isdwarf(exposed_mob)) + quality = RACE_DRINK + else + quality = DRINK_FANTASTIC + return ..() + +// RACIAL DRINKS END + +/datum/reagent/consumable/ethanol/appletini + name = "Appletini" + color = "#9bd1a9" //(155, 209, 169) + description = "The electric-green appley beverage nobody can turn down!" + boozepwr = 50 + taste_description = "Sweet and green" + quality = DRINK_GOOD + +/datum/glass_style/drinking_glass/appletini + required_drink_type = /datum/reagent/consumable/ethanol/appletini + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "appletini" + name = "glass of appletini" + desc = "An appley beverage in a martini glass" + +/datum/reagent/consumable/ethanol/quadruple_sec/cityofsin //making this a subtype was some REAL JANK, but it saves me a headache, and it looks good! + name = "City of Sin" + color = "#eb9378" //(235, 147, 120) + description = "A smooth, fancy drink for people of ill repute" + boozepwr = 70 + taste_description = "Your own sins" + quality = DRINK_VERYGOOD //takes extra effort + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + +/datum/glass_style/drinking_glass/cityofsin + required_drink_type = /datum/reagent/consumable/ethanol/quadruple_sec/cityofsin + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "cityofsin" + name = "glass of city of sin" + desc = "Looking at it makes you recall every mistake you've made." + +/datum/reagent/consumable/ethanol/shakiri + name = "Shakiri" + description = "A sweet, fragrant red drink made from fermented kiri fruits. It seems to gently sparkle when exposed to light." + boozepwr = 45 + color = "#cf3c3c" + quality = DRINK_GOOD + taste_description = "delicious liquified jelly" + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + +/datum/glass_style/drinking_glass/shakiri + required_drink_type = /datum/reagent/consumable/ethanol/shakiri + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "shakiri" + name = "glass of shakiri" + desc = "A sweet, fragrant red drink made from fermented kiri fruits. It seems to gently sparkle when exposed to light." + +/datum/reagent/consumable/ethanol/shakiri_spritz + name = "Shakiri Spritz" + description = "A carbonated cocktail made from shakiri and orange juice with soda water." + color = "#cf863c" + quality = DRINK_GOOD + boozepwr = 45 + taste_description = "tangy, carbonated sweetness" + +/datum/glass_style/drinking_glass/shakiri_spritz + required_drink_type = /datum/reagent/consumable/ethanol/shakiri_spritz + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "shakiri_spritz" + name = "glass of shakiri spritz" + desc = "A carbonated cocktail made from shakiri and orange juice with soda water." + +/datum/reagent/consumable/ethanol/crimson_hurricane + name = "Crimson Hurricane" + description = "A strong, citrusy cocktail of human origin, now made with shakiri and kiri jelly for a delightfully sweet drink." + color = "#b86637" + quality = DRINK_VERYGOOD + boozepwr = 60 + taste_description = "thick, fruity sweetness with a punch" + +/datum/glass_style/drinking_glass/crimson_hurricane + required_drink_type = /datum/reagent/consumable/ethanol/crimson_hurricane + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "crimson_hurricane" + name = "glass of crimson hurricane" + desc = "A strong, citrusy cocktail of human origin, now with shakiri and kiri jelly for a delightfully sweet drink." + +/datum/reagent/consumable/ethanol/shakiri_rogers + name = "Shakiri Rogers" + description = "A take on the classic Roy Rogers, with shakiri instead of grenadine. Sweet and refreshing." + color = "#6F2B1A" + quality = DRINK_GOOD + boozepwr = 45 + taste_description = "fruity, carbonated soda with a slight kick" + +/datum/glass_style/drinking_glass/shakiri_rogers + required_drink_type = /datum/reagent/consumable/ethanol/shakiri_rogers + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "shakiri_rogers" + name = "glass of shakiri rogers" + desc = "A take on the classic Roy Rogers, with shakiri instead of grenadine. Sweet and refreshing." diff --git a/modular_doppler/modular_food_and_drinks/drink_reagents.dm b/modular_doppler/modular_food_and_drinks/drink_reagents.dm new file mode 100644 index 0000000000000..0becf4329ae8f --- /dev/null +++ b/modular_doppler/modular_food_and_drinks/drink_reagents.dm @@ -0,0 +1,79 @@ +/datum/reagent/consumable/pinkmilk + name = "Strawberry Milk" + description = "A drink of a bygone era of milk and artificial sweetener back on a rock." + color = "#f76aeb"//rgb(247, 106, 235) + quality = DRINK_VERYGOOD + taste_description = "sweet strawberry and milk cream" + +/datum/glass_style/drinking_glass/pinkmilk + required_drink_type = /datum/reagent/consumable/pinkmilk + icon = 'modular_nova/master_files/icons/obj/drinks.dmi' + icon_state = "pinkmilk" + name = "tall glass of strawberry milk" + desc = "Delicious flavored strawberry syrup mixed with milk." + +/datum/reagent/consumable/pinkmilk/on_mob_life(mob/living/carbon/M) + if(prob(15)) + to_chat(M, span_notice("[pick("You cant help to smile.","You feel nostalgia all of sudden.","You remember to relax.")]")) + ..() + . = 1 + +/datum/reagent/consumable/pinktea //Tiny Tim song + name = "Strawberry Tea" + description = "A timeless classic!" + color = "#f76aeb"//rgb(247, 106, 235) + quality = DRINK_VERYGOOD + taste_description = "sweet tea with a hint of strawberry" + +/datum/glass_style/drinking_glass/pinktea + required_drink_type = /datum/reagent/consumable/pinktea + icon = 'modular_nova/master_files/icons/obj/drinks.dmi' + icon_state = "pinktea" + name = "mug of strawberry tea" + desc = "Delicious traditional tea flavored with strawberries." + +/datum/reagent/consumable/pinktea/on_mob_life(mob/living/carbon/M) + if(prob(10)) + to_chat(M, span_notice("[pick("Diamond skies where white deer fly.","Sipping strawberry tea.","Silver raindrops drift through timeless, Neverending June.","Crystal ... pearls free, with love!","Beaming love into me.")]")) + ..() + . = TRUE + +/datum/reagent/consumable/catnip_tea + name = "Catnip Tea" + description = "A sleepy and tasty catnip tea!" + color = "#101000" // rgb: 16, 16, 0 + taste_description = "sugar and catnip" + +/datum/glass_style/drinking_glass/catnip_tea + required_drink_type = /datum/reagent/consumable/catnip_tea + icon = 'modular_nova/master_files/icons/obj/drinks.dmi' + icon_state = "catnip_tea" + name = "glass of catnip tea" + desc = "A purrfect drink for a cat." + +/datum/reagent/consumable/catnip_tea/on_mob_life(mob/living/carbon/M) + M.adjustStaminaLoss(min(50 - M.getStaminaLoss(), 3)) + if(isfeline(M)) + if(prob(20)) + M.emote("nya") + if(prob(20)) + to_chat(M, span_notice("[pick("Headpats feel nice.", "Backrubs would be nice.", "Mew")]")) + else + to_chat(M, span_notice("[pick("I feel oddly calm.", "I feel relaxed.", "Mew?")]")) + ..() + +/datum/reagent/consumable/ethanol/beerbatter + name = "Beer Batter" + description = "Probably not the greatest idea to drink...sludge." + color = "#f5f4e9" + nutriment_factor = 2 * REAGENTS_METABOLISM + taste_description = "flour and cheap booze" + boozepwr = 8 // beer diluted at about a 1:3 ratio + ph = 6 + +/datum/glass_style/drinking_glass/beerbatter + required_drink_type = /datum/reagent/consumable/ethanol/beerbatter + icon = 'icons/obj/drinks/shakes.dmi' + icon_state = "chocolatepudding" + name = "glass of beer batter" + desc = "Used in cooking, pure cholesterol, Scottish people eat it." diff --git a/modular_doppler/modular_food_and_drinks/drinks_recipes.dm b/modular_doppler/modular_food_and_drinks/drinks_recipes.dm new file mode 100644 index 0000000000000..46e4a95a37e42 --- /dev/null +++ b/modular_doppler/modular_food_and_drinks/drinks_recipes.dm @@ -0,0 +1,421 @@ +/*STUFF WE CAN'T USE YET + +/datum/chemical_reaction/drink/synthanol + results = list(/datum/reagent/consumable/ethanol/synthanol = 3) + required_reagents = list( + /datum/reagent/lube = 1, + /datum/reagent/toxin/plasma = 1, + /datum/reagent/fuel = 1, + ) + mix_message = "The chemicals mix to create shiny, blue substance." + +/datum/chemical_reaction/drink/robottears + results = list(/datum/reagent/consumable/ethanol/synthanol/robottears = 3) + required_reagents = list( + /datum/reagent/consumable/ethanol/synthanol = 1, + /datum/reagent/fuel/oil = 1, + /datum/reagent/consumable/sodawater = 1, + ) + mix_message = "The ingredients combine into a stiff, dark goo." + +/datum/chemical_reaction/drink/trinary + results = list(/datum/reagent/consumable/ethanol/synthanol/trinary = 3) + required_reagents = list( + /datum/reagent/consumable/ethanol/synthanol = 1, + /datum/reagent/consumable/limejuice = 1, + /datum/reagent/consumable/orangejuice = 1, + ) + mix_message = "The ingredients mix into a colorful substance." + +/datum/chemical_reaction/drink/servo + results = list(/datum/reagent/consumable/ethanol/synthanol/servo = 4) + required_reagents = list( + /datum/reagent/consumable/ethanol/synthanol = 2, + /datum/reagent/consumable/cream = 1, + /datum/reagent/consumable/hot_coco = 1, + ) + mix_message = "The ingredients mix into a dark brown substance." + +/datum/chemical_reaction/drink/uplink + results = list(/datum/reagent/consumable/ethanol/synthanol/uplink = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/synthanol = 1, + /datum/reagent/consumable/ethanol/rum = 1, + /datum/reagent/consumable/ethanol/vodka = 1, + /datum/reagent/consumable/ethanol/tequila = 1, + /datum/reagent/consumable/ethanol/whiskey = 1, + ) + mix_message = "The chemicals mix to create a shiny, orange substance." + +/datum/chemical_reaction/drink/synthncoke + results = list(/datum/reagent/consumable/ethanol/synthanol/synthncoke = 2) + required_reagents = list( + /datum/reagent/consumable/ethanol/synthanol = 1, + /datum/reagent/consumable/space_cola = 1, + ) + mix_message = "The chemicals mix to create a smooth, fizzy substance." + +/datum/chemical_reaction/drink/synthignon + results = list(/datum/reagent/consumable/ethanol/synthanol/synthignon = 2) + required_reagents = list( + /datum/reagent/consumable/ethanol/synthanol = 1, + /datum/reagent/consumable/ethanol/wine = 1, + ) + mix_message = "The chemicals mix to create a fine, red substance." +*/ +// Other Booze + +/datum/chemical_reaction/drink/hot_toddy + results = list(/datum/reagent/consumable/ethanol/hot_toddy = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/rum = 1, + /datum/reagent/consumable/tea = 3, + /datum/reagent/consumable/honey = 1, + ) + mix_message = "A loud popping begins to fill the air as the drink is mixed." + +/datum/chemical_reaction/drink/hellfire + results = list(/datum/reagent/consumable/ethanol/hellfire = 4) + required_reagents = list( + /datum/reagent/consumable/ethanol/rum = 2, + /datum/reagent/consumable/ice = 1, + /datum/reagent/consumable/ethanol/crevice_spike = 1, + ) + mix_message = "The liquid begins to churn as it changes to an amber orange and catches on fire." + +/datum/chemical_reaction/drink/sins_delight + results = list(/datum/reagent/consumable/ethanol/sins_delight = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/demonsblood = 2, + /datum/reagent/consumable/ethanol/triple_sec = 1, + /datum/reagent/consumable/ethanol/martini = 1, + /datum/reagent/consumable/ethanol/changelingsting = 1, + ) + mix_message = "The liquid starts swirling, before forming a pink cloud that dissipates in the air." + +/datum/chemical_reaction/drink/strawberry_daiquiri + results = list(/datum/reagent/consumable/ethanol/strawberry_daiquiri = 7) + required_reagents = list( + /datum/reagent/consumable/ethanol/rum = 2, + /datum/reagent/consumable/limejuice = 1, + /datum/reagent/consumable/sugar = 1, + /datum/reagent/consumable/berryjuice = 2, + /datum/reagent/consumable/ice = 1, + ) + +/datum/chemical_reaction/drink/miami_vice + results = list(/datum/reagent/consumable/ethanol/miami_vice = 2) + required_reagents = list( + /datum/reagent/consumable/ethanol/pina_colada = 1, + /datum/reagent/consumable/ethanol/strawberry_daiquiri = 1, + ) + +/datum/chemical_reaction/drink/malibu_sunset + results = list(/datum/reagent/consumable/ethanol/malibu_sunset = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/painkiller = 2, + /datum/reagent/consumable/grenadine = 1, + /datum/reagent/consumable/orangejuice = 1, + /datum/reagent/consumable/ice = 1, + ) + +/datum/chemical_reaction/drink/liz_fizz + results = list(/datum/reagent/consumable/ethanol/liz_fizz = 5) + required_reagents = list( + /datum/reagent/consumable/triple_citrus = 3, + /datum/reagent/consumable/ice = 1, + /datum/reagent/consumable/cream = 1,) + +/datum/chemical_reaction/drink/hotlime_miami + results = list(/datum/reagent/consumable/ethanol/hotlime_miami = 2) + required_reagents = list( + /datum/reagent/medicine/ephedrine = 1, + /datum/reagent/consumable/ethanol/pina_colada = 1, + ) + +/datum/chemical_reaction/drink/coggrog + results = list(/datum/reagent/consumable/ethanol/coggrog = 3) + required_reagents = list( + /datum/reagent/consumable/ethanol/cognac = 1, + /datum/reagent/fuel = 1, + /datum/reagent/consumable/ethanol/screwdrivercocktail = 1, + ) + mix_message = "You hear faint sounds of gears turning as it mixes." + mix_sound = 'sound/machines/clockcult/steam_whoosh.ogg' + +/datum/chemical_reaction/drink/badtouch + results = list(/datum/reagent/consumable/ethanol/badtouch = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/cognac = 2, + /datum/reagent/consumable/limejuice = 2, + /datum/reagent/consumable/orangejuice=1, + ) + +/datum/chemical_reaction/drink/marsblast + results = list(/datum/reagent/consumable/ethanol/marsblast = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/whiskey = 3, + /datum/reagent/consumable/dr_gibb = 2, + ) + +/datum/chemical_reaction/drink/mercuryblast + results = list(/datum/reagent/consumable/ethanol/mercuryblast = 4) + required_reagents = list( + /datum/reagent/consumable/ethanol/vodka = 2, + /datum/reagent/consumable/spacemountainwind = 1, + /datum/reagent/consumable/ice = 1, + ) + +/datum/chemical_reaction/drink/piledriver + results = list(/datum/reagent/consumable/ethanol/piledriver = 6) + required_reagents = list( + /datum/reagent/consumable/ethanol/screwdrivercocktail = 1, + /datum/reagent/consumable/ethanol/rum_coke = 1, + ) + +/datum/chemical_reaction/drink/zenstar + results = list(/datum/reagent/consumable/ethanol/zenstar = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/triple_sec = 2, + /datum/reagent/consumable/lemonjuice = 2, + /datum/reagent/consumable/grenadine = 1, + ) + +/datum/chemical_reaction/drink/appletini + results = list(/datum/reagent/consumable/ethanol/appletini = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/vodka = 3, + /datum/reagent/consumable/ethanol/hcider = 1, + /datum/reagent/consumable/lemonjuice = 1, + ) + +/datum/chemical_reaction/drink/quadruple_sec/cityofsin + results = list(/datum/reagent/consumable/ethanol/quadruple_sec/cityofsin = 4) + required_reagents = list( + /datum/reagent/consumable/ethanol/vodka = 2, + /datum/reagent/consumable/ethanol/champagne = 1, + /datum/reagent/consumable/berryjuice = 1, + ) + +/datum/chemical_reaction/drink/blizzard_brew + results = list(/datum/reagent/consumable/ethanol/blizzard_brew = 3) + required_reagents = list( + /datum/reagent/consumable/ethanol/iced_beer = 1, + /datum/reagent/consumable/ice = 1, + /datum/reagent/inverse/cryostylane = 1, + ) + mix_message = "You hear crackling ice as it mixes." + mix_sound = 'sound/effects/ice_shovel.ogg' + +/datum/chemical_reaction/drink/molten_mead + results = list(/datum/reagent/consumable/ethanol/molten_mead = 3) + required_reagents = list( + /datum/reagent/consumable/condensedcapsaicin = 2, + /datum/reagent/consumable/ethanol/mead = 2, + /datum/reagent/consumable/ethanol/mauna_loa = 1, + ) + mix_message = "You hear sizzling flesh and angry wasps buzzing as it mixes." + mix_sound = 'sound/effects/wounds/sizzle2.ogg' + +/datum/chemical_reaction/drink/hippie_hooch + results = list(/datum/reagent/consumable/ethanol/hippie_hooch = 5) + required_reagents = list( + /datum/reagent/medicine/antihol = 1, + /datum/reagent/consumable/ethanol/crevice_spike = 3, + /datum/reagent/medicine/earthsblood = 1, + ) + mix_message = "You hear wood flutes and nature as it mixes." + mix_sound = 'modular_skyrat/modules/emotes/sound/voice/hoot.ogg' + +/datum/chemical_reaction/drink/research_rum + results = list(/datum/reagent/consumable/ethanol/research_rum = 4) + required_reagents = list( + /datum/reagent/consumable/ethanol/bananahonk = 2, + /datum/reagent/inverse/neurine = 1, + /datum/reagent/consumable/ethanol/grog = 1, + ) + mix_message = "You hear gurgling and dinging as it mixes." + mix_sound = 'sound/machines/microwave/microwave-end.ogg' + +/datum/chemical_reaction/drink/golden_grog + results = list(/datum/reagent/consumable/ethanol/golden_grog = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/goldschlager = 10, + /datum/reagent/gold = 1, + /datum/reagent/silver = 1, + /datum/reagent/cellulose = 1, + /datum/reagent/spraytan = 1, + ) + mix_message = "You hear golden coins and snobby rich laughing as it mixes." + mix_sound = 'sound/items/coinflip.ogg' + +/* DEPRECATED UNTIL WE'RE READY +// RACE SPECIFIC DRINKS + +/datum/chemical_reaction/drink/coldscales + results = list(/datum/reagent/consumable/ethanol/coldscales = 3) + required_reagents = list( + /datum/reagent/consumable/tea = 1, + /datum/reagent/toxin/slimejelly = 1, + /datum/reagent/consumable/menthol = 1, + ) + +/datum/chemical_reaction/drink/oil_drum + results = list(/datum/reagent/consumable/ethanol/oil_drum = 3) + required_reagents = list( + /datum/reagent/consumable/ethanol = 1, + /datum/reagent/fuel/oil = 1, + /datum/reagent/consumable/ethanol/champagne = 12, + ) + +/datum/chemical_reaction/drink/nord_king + results = list(/datum/reagent/consumable/ethanol/nord_king = 10) + required_reagents = list( + /datum/reagent/consumable/ethanol = 5, + /datum/reagent/consumable/honey = 1, + /datum/reagent/consumable/ethanol/red_mead = 10, + ) + +/datum/chemical_reaction/drink/velvet_kiss + results = list(/datum/reagent/consumable/ethanol/velvet_kiss = 15) //Limited races use this + required_reagents = list( + /datum/reagent/blood = 5, + /datum/reagent/consumable/tea = 1, + /datum/reagent/consumable/ethanol/wine = 10, + ) + +/datum/chemical_reaction/drink/abduction_fruit + results = list(/datum/reagent/consumable/ethanol/abduction_fruit = 3) + required_reagents = list( + /datum/reagent/consumable/limejuice = 10, + /datum/reagent/consumable/berryjuice = 5, + /datum/reagent/consumable/watermelonjuice = 10, + ) + +/datum/chemical_reaction/drink/bug_zapper + results = list(/datum/reagent/consumable/ethanol/bug_zapper = 20) //Harder to make + required_reagents = list( + /datum/reagent/consumable/lemonjuice = 10, + /datum/reagent/teslium = 1, + /datum/reagent/copper = 10, + ) + +/datum/chemical_reaction/drink/mush_crush + results = list(/datum/reagent/consumable/ethanol/mush_crush = 10) + required_reagents = list( + /datum/reagent/iron = 5, + /datum/reagent/ash = 5, + /datum/reagent/toxin/coffeepowder = 10, + ) + +/datum/chemical_reaction/drink/hollow_bone + results = list(/datum/reagent/consumable/ethanol/hollow_bone = 10) + required_reagents = list( + /datum/reagent/toxin/bonehurtingjuice = 10, + /datum/reagent/consumable/soymilk = 15, + ) + +/datum/chemical_reaction/drink/jell_wyrm + results = list(/datum/reagent/consumable/ethanol/jell_wyrm = 2) + required_reagents = list( + /datum/reagent/toxin/slimejelly = 1, + /datum/reagent/toxin/carpotoxin = 1, + /datum/reagent/carbondioxide = 5, + ) + required_temp = 333 // (59.85'C) + +/datum/chemical_reaction/drink/laval_spit + results = list(/datum/reagent/consumable/ethanol/laval_spit = 20) //Limited use + required_reagents = list( + /datum/reagent/iron = 5, + /datum/reagent/consumable/ethanol/mauna_loa = 10, + /datum/reagent/sulfur = 5, + ) + required_temp = 900 // (626.85'C) + +/datum/chemical_reaction/drink/frisky_kitty + results = list(/datum/reagent/consumable/ethanol/frisky_kitty = 2) + required_reagents = list( + /datum/reagent/consumable/catnip_tea = 1, + /datum/reagent/consumable/milk = 1, + ) + required_temp = 296 //Just above room temp (22.85'C) + +/datum/chemical_reaction/drink/bloodshot_base + results = list(/datum/reagent/consumable/ethanol/bloodshot_base = 2) + required_reagents = list( + /datum/reagent/consumable/ethanol/bloody_mary = 1, + /datum/reagent/consumable/sugar = 1, + ) + reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER + +/datum/chemical_reaction/drink/bloodshot + results = list(/datum/reagent/consumable/ethanol/bloodshot = 5) + required_reagents = list( + /datum/reagent/blood = 3, + /datum/reagent/consumable/ethanol/bloodshot_base = 2, + ) + reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER +*/ + +// Non-Booze, see modular_skyrat\modules\customization\modules\reagents\chemistry\reagents\drink_reagents.dm + +/datum/chemical_reaction/drink/pinkmilk + results = list(/datum/reagent/consumable/pinkmilk = 2) + required_reagents = list( + /datum/reagent/consumable/berryjuice = 1, + /datum/reagent/consumable/milk = 1, + /datum/reagent/consumable/sugar = 1, + ) + +/datum/chemical_reaction/drink/pinktea + results = list(/datum/reagent/consumable/pinktea = 5) + required_reagents = list( + /datum/reagent/consumable/berryjuice = 1, + /datum/reagent/consumable/tea/arnold_palmer = 1, + /datum/reagent/consumable/sugar = 1, + ) + +/datum/chemical_reaction/drink/catnip_tea + results = list(/datum/reagent/consumable/catnip_tea = 10) + required_reagents = list( + /datum/reagent/consumable/tea = 5, + /datum/reagent/pax/catnip = 2, + ) + +/datum/chemical_reaction/drink/beerbatter + results = list(/datum/reagent/consumable/ethanol/beerbatter = 4) + required_reagents = list( + /datum/reagent/consumable/nutriment/fat/oil = 1, + /datum/reagent/consumable/ethanol/beer = 1, + /datum/reagent/consumable/flour = 1, + ) + mix_message = "Sizzling and cracking is heard as you beat the mixture into submission." + +/datum/chemical_reaction/drink/shakiri_spritz + results = list(/datum/reagent/consumable/ethanol/shakiri_spritz = 3) + required_reagents = list( + /datum/reagent/consumable/ethanol/shakiri = 1, + /datum/reagent/consumable/sodawater = 1, + /datum/reagent/consumable/orangejuice = 1, + ) + mix_message = "The liquids combine to create a pleasant orange mixture." + +/datum/chemical_reaction/drink/crimson_hurricane + results = list(/datum/reagent/consumable/ethanol/crimson_hurricane = 5) + required_reagents = list( + /datum/reagent/consumable/ethanol/shakiri = 1, + /datum/reagent/consumable/ethanol/rum = 2, + /datum/reagent/consumable/grenadine = 1, + /datum/reagent/consumable/limejuice = 1, + ) + mix_message = "The mixture develops into a rich red color." + +/datum/chemical_reaction/drink/shakiri_rogers + results = list(/datum/reagent/consumable/ethanol/shakiri_rogers = 10) + required_reagents = list( + /datum/reagent/consumable/ethanol/shakiri = 1, + /datum/reagent/consumable/space_cola = 5, + /datum/reagent/consumable/ice = 2, + ) + mix_message = "Bubbles of carbonation rise and pop at the surface of the dark mixture." diff --git a/modular_doppler/modular_food_and_drinks/icons/drinks.dmi b/modular_doppler/modular_food_and_drinks/icons/drinks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9ccaa586ac7eba21ef0c14347097ca79d0718ff7 GIT binary patch literal 30301 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 literal 0 HcmV?d00001 diff --git a/modular_doppler/vending_machines/code/vendor_containers.dm b/modular_doppler/vending_machines/code/vendor_containers.dm new file mode 100644 index 0000000000000..7feb74dfbcfd6 --- /dev/null +++ b/modular_doppler/vending_machines/code/vendor_containers.dm @@ -0,0 +1,89 @@ +/obj/item/storage/box/foodpack + name = "wrapped meal container" + desc = "A generic brown paper food package, you aren't quite sure where this comes from." + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon_state = "foodpack_generic_big" + illustration = null + custom_price = PAYCHECK_CREW * 1.8 + ///What the main course of this package is + var/main_course = /obj/item/trash/empty_food_tray + ///What the side of this package should be + var/side_item = /obj/item/food/vendor_snacks + ///What kind of condiment pack should we give the package + var/condiment_pack = /obj/item/reagent_containers/condiment/pack/ketchup + +/obj/item/storage/box/foodpack/PopulateContents() + . = ..() + new main_course(src) + new side_item(src) + new condiment_pack(src) + +/obj/item/storage/box/foodpack/nt + name = "\improper NT-Combo Meal - Salisbury Steak" + desc = "A relatively bland package made of reflective metal foil, it has a blue sprite and the letters 'NT' printed on the top." + icon_state = "foodpack_nt_big" + main_course = /obj/item/food/vendor_tray_meal + side_item = /obj/effect/spawner/random/vendor_meal_sides/nt + condiment_pack = /obj/item/reagent_containers/condiment/pack/ketchup + +/obj/item/storage/box/foodpack/nt/burger + name = "\improper NT-Combo Meal - Cheeseburger" + main_course = /obj/item/food/vendor_tray_meal/burger + +/obj/item/storage/box/foodpack/nt/chicken_sammy + name = "\improper NT-Combo Meal - Spicy Chicken Sandwich" + main_course = /obj/item/food/vendor_tray_meal/chicken_sandwich + +/obj/item/storage/box/foodpack/yangyu + name = "\improper Atatakai shokuji - Homestyle Noodles" + desc = "A well decorated red and white plastic package, covered in nearly incomprehensible yangyu text." + icon_state = "foodpack_yangyu_big" + main_course = /obj/item/food/vendor_tray_meal/ramen + side_item = /obj/effect/spawner/random/vendor_meal_sides/yangyu + condiment_pack = /obj/item/reagent_containers/condiment/pack/hotsauce + +/obj/item/storage/box/foodpack/yangyu/sushi + name = "\improper Atatakai shokuji - Carp Sushi Rolls" + main_course = /obj/item/food/vendor_tray_meal/sushi + +/obj/item/storage/box/foodpack/yangyu/beef_rice + name = "\improper Atatakai shokuji - Beef and Rice" + main_course = /obj/item/food/vendor_tray_meal/beef_rice + +/obj/item/storage/box/foodpack/moth + name = "\improper Ration Type M - Pesto Pizza" + desc = "A cardboard-colored paper package with the symbol of the nomad fleet stamped upon it." + icon_state = "foodpack_moth_big" + main_course = /obj/item/food/vendor_tray_meal/pesto_pizza + side_item = /obj/effect/spawner/random/vendor_meal_sides/moth + condiment_pack = /obj/item/reagent_containers/condiment/pack/astrotame + +/obj/item/storage/box/foodpack/moth/baked_rice + name = "\improper Ration Type M - Baked Rice and Grilled Cheese" + main_course = /obj/item/food/vendor_tray_meal/baked_rice + +/obj/item/storage/box/foodpack/moth/fuel_jack + name = "\improper Ration Type M - Fueljack's Feast" + main_course = /obj/item/food/vendor_tray_meal/fueljack + +/obj/item/storage/box/foodpack/tizira + name = "\improper Tizira Imports Pack - Moonfish Nizaya" + desc = "A dull, metal foil package with the colors of the Tiziran flag striped across it, as well as a stamp of legitimate origin from the Tiziran exports office." + icon_state = "foodpack_tizira_big" + main_course = /obj/item/food/vendor_tray_meal/moonfish_nizaya + side_item = /obj/effect/spawner/random/vendor_meal_sides/tizira + condiment_pack = /obj/item/reagent_containers/condiment/pack/bbqsauce + custom_price = PAYCHECK_CREW * 2 //Tiziran imports are a bit more expensive + +/obj/item/storage/box/foodpack/tizira/examine_more(mob/user) + . = ..() + . += span_notice("Now that you look at it, the origin stamp appears to be a poor imitation of the real thing!") + return . + +/obj/item/storage/box/foodpack/tizira/roll + name = "\improper Tizira Imports Pack - Emperor Roll" + main_course = /obj/item/food/vendor_tray_meal/emperor_roll + +/obj/item/storage/box/foodpack/tizira/stir_fry + name = "\improper Tizira Imports Pack - Mushroom Stirfry" + main_course = /obj/item/food/vendor_tray_meal/mushroom_fry diff --git a/modular_doppler/vending_machines/code/vendor_food.dm b/modular_doppler/vending_machines/code/vendor_food.dm new file mode 100644 index 0000000000000..2e036b9ec31a2 --- /dev/null +++ b/modular_doppler/vending_machines/code/vendor_food.dm @@ -0,0 +1,318 @@ +// Packaged whole meals and sides for the 'meals' tab of vendors + +/* TRASH */ + +/obj/item/trash/empty_food_tray + name = "empty plastic food tray" + desc = "The condensation and what you can only hope are the leftovers of food make this a bit hard to reuse." + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon_state = "foodtray_empty" + custom_materials = list( + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/item/trash/empty_side_pack + name = "empty side wrapper" + desc = "Unfortunately, this no longer holds any sides to distract you from the other 'food'." + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon_state = "foodpack_generic_trash" + custom_materials = list( + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/obj/item/trash/empty_side_pack/nt + icon_state = "foodpack_nt_trash" + +/obj/item/trash/empty_side_pack/yangyu + icon_state = "foodpack_yangyu_trash" + +/obj/item/trash/empty_side_pack/moth + icon_state = "foodpack_moth_trash" + +/obj/item/trash/empty_side_pack/tizira + icon_state = "foodpack_tizira_trash" + +/* MEALS */ + +/* +* NT Meals +*/ + +/obj/item/food/vendor_tray_meal + name = "\improper NT-Meal: Steak and Macaroni" + desc = "A 'salisbury steak' drowning in something similar to a gravy, with a macaroni and cheese substitute mix sitting right beside it." + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon_state = "foodtray_sad_steak" + trash_type = /obj/item/trash/empty_food_tray + food_reagents = list(/datum/reagent/consumable/nutriment = 8) + tastes = list("meat?" = 2, "cheese?" = 2, "laziness" = 1) + foodtypes = MEAT | GRAIN | DAIRY + food_flags = FOOD_FINGER_FOOD + w_class = WEIGHT_CLASS_SMALL + ///Does this food have the steam effect on it when initialized + var/hot_and_steamy = TRUE + +/obj/item/food/vendor_tray_meal/Initialize(mapload) + . = ..() + if(hot_and_steamy) + overlays += mutable_appearance('icons/effects/steam.dmi', "steam_triple", ABOVE_OBJ_LAYER) + +/obj/item/food/vendor_tray_meal/examine_more(mob/user) + . = ..() + . += span_notice("You browse the back of the box...") + . += "\t[span_warning("Warning: Packaged in a factory where every allergen known is present.")]" + . += "\t[span_warning("Warning: Contents might be hot.")]" + . += "\t[span_info("Per 200g serving contains: 8g Sodium; 25g Fat, of which 22g are saturated; 2g Sugar.")]" + return . + +/obj/item/food/vendor_tray_meal/burger + name = "\improper NT-Meal: Cheeseburger" + desc = "A pretty sad looking burger with a kinda soggy bottom bun and highlighter yellow cheese." + icon_state = "foodtray_burg" + tastes = list("bread" = 2, "meat?" = 2, "cheese?" = 2, "laziness" = 1) + foodtypes = MEAT | GRAIN | DAIRY + +/obj/item/food/vendor_tray_meal/chicken_sandwich + name = "\improper NT-Meal: Spicy Chicken Sandwich" + desc = "A pretty sad looking chicken sandwich, the 'meat' patty is covered in so many manufactured spices that it has become an eerie red color." + icon_state = "foodtray_chickie_sandwich" + food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/consumable/capsaicin = 10) + tastes = list("bread" = 2, "chicken?" = 2, "overwhelming spice" = 2, "laziness" = 1) + foodtypes = MEAT | GRAIN | DAIRY + +/* +* Yangyu Meals +*/ + +/obj/item/food/vendor_tray_meal/ramen + name = "\improper Meinkosu: Homestyle Noodles" + desc = "A brick of the finest factory made ramen, with a small amount of rehydrated vegetables and herbs floating around." + icon_state = "foodtray_noodle" + tastes = list("cheap noodles" = 2, "laziness" = 1) + foodtypes = GRAIN | VEGETABLES + +/obj/item/food/vendor_tray_meal/sushi + name = "\improper Meinkosu: Fresh Carp Rolls" + desc = "A pair of sushi rolls, the appearance of which would suggest that the label is lying to you." + icon_state = "foodtray_gas_station_sushi" + tastes = list("imitation space carp" = 2, "stale rice" = 2, "laziness" = 1) + foodtypes = GRAIN | SEAFOOD + +/obj/item/food/vendor_tray_meal/beef_rice + name = "\improper Meinkosu: Beef and Fried Rice" + desc = "A few slices of seemingly grilled beef, paired with a disproportionately large amount of rice." + icon_state = "foodtray_beef_n_rice" + tastes = list("cheap beef" = 1, "rice" = 3, "laziness" = 1) + foodtypes = GRAIN | MEAT + +/* +* Mothic Meals +*/ + +/obj/item/food/vendor_tray_meal/pesto_pizza + name = "\improper Main Course - Type M: Pesto Pizza" + desc = "A rectangular pizza with a suspiciously bright green pesto in place of the standard tomato sauce." + icon_state = "foodtray_pesto_pizza" + tastes = list("tomato?" = 2, "cheese?" = 2, "herbs" = 1, "laziness" = 1) + foodtypes = GRAIN | DAIRY | VEGETABLES + +/obj/item/food/vendor_tray_meal/baked_rice + name = "\improper Main Course - Type M: Baked Rice and Grilled Cheese" + desc = "Some sub-par looking fleet style rice, with a very grilled chunk of cheese." + icon_state = "foodtray_rice_n_grilled_cheese" + tastes = list("rice" = 2, "peppers" = 2, "charred cheese" = 2, "laziness" = 1) + foodtypes = GRAIN | DAIRY | VEGETABLES + +/obj/item/food/vendor_tray_meal/fueljack + name = "\improper Main Course - Type M: Fueljack's Tray" + desc = "A flat chunk of fueljack's lunch, seemingly missing most of the usual variety in ingredients." + icon_state = "foodtray_fuel_jacks_meal" + tastes = list("potato" = 2, "cabbage" = 2, "cheese?" = 2, "laziness" = 1) + foodtypes = DAIRY | VEGETABLES + +/* +* Tiziran Meals +*/ + +/obj/item/food/vendor_tray_meal/moonfish_nizaya + name = "\improper Tizira Imports: Moonfish and Nizaya" + desc = "An almost synthetic looking cut of moonfish, paired with an equal helping of nizaya pasta." + icon_state = "foodtray_moonfish_nizaya" + tastes = list("fish?" = 2, "cheap noodles" = 2, "laziness" = 1) + foodtypes = VEGETABLES | NUTS | SEAFOOD + +/obj/item/food/vendor_tray_meal/emperor_roll + name = "\improper Tizira Imports: Emperor Roll" + desc = "A pretty sad looking emperor roll, if you can even call it that; it seems caviar wasn't in the budget." + icon_state = "foodtray_emperor_roll" + tastes = list("bread" = 2, "cheese?" = 2, "liver?" = 2, "laziness" = 1) + foodtypes = VEGETABLES | NUTS | MEAT | GORE + +/obj/item/food/vendor_tray_meal/mushroom_fry + name = "\improper Tizira Imports: Mushroom Stirfry" + desc = "A mix of what was likely mushrooms too low quality to be used in making actual food, lightly fried and tossed in a plastic container together." + icon_state = "foodtray_shroom_fry" + tastes = list("mushroom" = 4, "becoming rich" = 1, "laziness" = 1) + foodtypes = VEGETABLES + +/* SIDES */ + +/obj/effect/spawner/random/vendor_meal_sides + name = "random side spawner" + desc = "I hope I get one that actually matches my meal." + icon_state = "loot" + +/* +* NT Sides +*/ + +/obj/effect/spawner/random/vendor_meal_sides/nt + name = "random nt side spawner" + +/obj/effect/spawner/random/vendor_meal_sides/nt/Initialize(mapload) + loot = list( + /obj/item/food/vendor_tray_meal/side, + /obj/item/food/vendor_tray_meal/side/crackers_and_jam, + /obj/item/food/vendor_tray_meal/side/crackers_and_cheese, + ) + . = ..() + +/obj/item/food/vendor_tray_meal/side + name = "\improper NT-Side: Flatbread and Peanut Butter" + desc = "A small stack of tough flatbread, and a small spread of peanut butter for each." + icon_state = "foodpack_nt" + trash_type = /obj/item/trash/empty_side_pack/nt + food_reagents = list(/datum/reagent/consumable/nutriment = 5) + tastes = list("tough bread" = 2, "peanut butter" = 2) + foodtypes = GRAIN + hot_and_steamy = FALSE + custom_price = PAYCHECK_LOWER * 2.5 + +/obj/item/food/vendor_tray_meal/side/crackers_and_jam + name = "\improper NT-Side: Flatbread and Berry Jelly" + desc = "A small stack of tough flatbread, and a small spread of nondescript berry jelly for each." + tastes = list("tough bread" = 2, "berries" = 2) + foodtypes = GRAIN | FRUIT + +/obj/item/food/vendor_tray_meal/side/crackers_and_cheese + name = "\improper NT-Side: Flatbread and Cheese Spread" + desc = "A small stack of tough flatbread, and a small spread of cheese for each." + tastes = list("tough bread" = 2, "cheese" = 2) + foodtypes = GRAIN | DAIRY + +/* +* Yangyu Sides +*/ + +/obj/effect/spawner/random/vendor_meal_sides/yangyu + name = "random yangyu side spawner" + +/obj/effect/spawner/random/vendor_meal_sides/yangyu/Initialize(mapload) + loot = list( + /obj/item/food/vendor_tray_meal/side/miso, + /obj/item/food/vendor_tray_meal/side/rice, + /obj/item/food/vendor_tray_meal/side/pickled_vegetables, + ) + . = ..() + +/obj/item/food/vendor_tray_meal/side/miso + name = "\improper Fukusai: Miso Soup" + desc = "This is quite literally just a plastic bag full of miso soup, opening it on any side other than the one indicated may result in spilled soup." + icon_state = "foodpack_yangyu" + trash_type = /obj/item/trash/empty_side_pack/yangyu + tastes = list("miso" = 2) + foodtypes = VEGETABLES + +/obj/item/food/vendor_tray_meal/side/rice + name = "\improper Fukusai: White Rice" + desc = "A bag stuffed full of white rice, in case your meal didn't come with enough to sate your needs." + icon_state = "foodpack_yangyu" + trash_type = /obj/item/trash/empty_side_pack/yangyu + tastes = list("old rice" = 2) + foodtypes = GRAIN + +/obj/item/food/vendor_tray_meal/side/pickled_vegetables + name = "\improper Fukusai: Pickled Vegetables" + desc = "Contains a small assortment of vegetables pickled in a vinegar-like solution." + icon_state = "foodpack_yangyu" + trash_type = /obj/item/trash/empty_side_pack/yangyu + tastes = list("vinegar" = 4) + foodtypes = VEGETABLES + +/* +* Mothic Sides +*/ + +/obj/effect/spawner/random/vendor_meal_sides/moth + name = "random mothic side spawner" + +/obj/effect/spawner/random/vendor_meal_sides/moth/Initialize(mapload) + loot = list( + /obj/item/food/vendor_tray_meal/side/moffin, + /obj/item/food/vendor_tray_meal/side/cornbread, + /obj/item/food/vendor_tray_meal/side/roasted_seeds, + ) + . = ..() + +/obj/item/food/vendor_tray_meal/side/moffin + name = "\improper Side Course - Type M: Moffin" + desc = "The result of taking a perfectly fine moffin, and flattening it into a more wafer-like form." + icon_state = "foodpack_moth" + trash_type = /obj/item/trash/empty_side_pack/moth + tastes = list("fabric?" = 2, "sugar" = 2) + foodtypes = CLOTH | GRAIN | SUGAR + +/obj/item/food/vendor_tray_meal/side/cornbread + name = "\improper Side Course - Type M: Cornbread" + desc = "A flattened cut of sweetened cornbread, goes well with butter." + icon_state = "foodpack_moth" + trash_type = /obj/item/trash/empty_side_pack/moth + tastes = list("cornbread" = 2, "sweetness" = 2) + foodtypes = GRAIN | SUGAR + +/obj/item/food/vendor_tray_meal/side/roasted_seeds + name = "\improper Side Course - Type M: Roasted Seeds" + desc = "A packet full of various oven roasted seeds." + icon_state = "foodpack_moth" + trash_type = /obj/item/trash/empty_side_pack/moth + tastes = list("seeds" = 2, "char" = 2) + foodtypes = NUTS + +/* +* Tiziran Sides +*/ + +/obj/effect/spawner/random/vendor_meal_sides/tizira + name = "random tiziran side spawner" + +/obj/effect/spawner/random/vendor_meal_sides/tizira/Initialize(mapload) + loot = list( + /obj/item/food/vendor_tray_meal/side/root_crackers, + /obj/item/food/vendor_tray_meal/side/korta_brittle, + /obj/item/food/vendor_tray_meal/side/crispy_headcheese, + ) + . = ..() + +/obj/item/food/vendor_tray_meal/side/root_crackers + name = "\improper Tizira Imports: Rootbread Crackers and Pate" + desc = "A small stack of rootbread crackers, with a small spread of meat pate for each." + icon_state = "foodpack_tizira" + trash_type = /obj/item/trash/empty_side_pack/tizira + tastes = list("tough rootbread" = 2, "pate" = 2) + foodtypes = VEGETABLES | NUTS | MEAT + +/obj/item/food/vendor_tray_meal/side/korta_brittle + name = "\improper Tizira Imports: Korta Brittle" + desc = "A perfectly rectangular portion of unsweetened korta brittle." + icon_state = "foodpack_tizira" + trash_type = /obj/item/trash/empty_side_pack/tizira + tastes = list("peppery heat" = 2) + foodtypes = NUTS + +/obj/item/food/vendor_tray_meal/side/crispy_headcheese + name = "\improper Tizira Imports: Crisped Headcheese" + desc = "A processed looking block of breaded headcheese." + icon_state = "foodpack_tizira" + trash_type = /obj/item/trash/empty_side_pack/tizira + tastes = list("cheese" = 1, "oil" = 1) + foodtypes = MEAT | VEGETABLES | NUTS | GORE diff --git a/modular_doppler/vending_machines/code/vendor_snacks.dm b/modular_doppler/vending_machines/code/vendor_snacks.dm new file mode 100644 index 0000000000000..36778ad36f5cc --- /dev/null +++ b/modular_doppler/vending_machines/code/vendor_snacks.dm @@ -0,0 +1,302 @@ +// Snacks and drinks for the 'snacks' tab of vendors + +/obj/item/food/vendor_snacks + name = "\improper God's Strongest Snacks" + desc = "You best hope you aren't a sinner. (You should never see this item please report it)" + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon_state = "foodpack_generic" + trash_type = /obj/item/trash/vendor_trash + bite_consumption = 10 + food_reagents = list(/datum/reagent/consumable/nutriment = INFINITY) + junkiness = 10 + custom_price = PAYCHECK_LOWER * INFINITY + tastes = list("the unmatched power of the sun" = 10) + foodtypes = JUNKFOOD | CLOTH | GORE | NUTS | FRIED | FRUIT //You don't want to know what's in the broken debug snacks + w_class = WEIGHT_CLASS_SMALL + +/obj/item/trash/vendor_trash + name = "\improper God's Weakest Snacks" + desc = "The leftovers of what was likely a great snack in a past time." + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon_state = "foodpack_generic_trash" + custom_materials = list( + /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, + ) + +/* +* Yangyu Snacks +*/ + +/obj/item/reagent_containers/cup/glass/dry_ramen/prepared + name = "cup ramen" + desc = "This one even comes with water, amazing!" + list_reagents = list(/datum/reagent/consumable/hot_ramen = 15, /datum/reagent/consumable/salt = 3) + +/obj/item/reagent_containers/cup/glass/dry_ramen/prepared/hell + name = "spicy cup ramen" + desc = "This one comes with water, AND a security checkpoint's worth of capsaicin!" + list_reagents = list(/datum/reagent/consumable/hell_ramen = 15, /datum/reagent/consumable/salt = 3) + +/obj/item/food/vendor_snacks/rice_crackers + name = "rice crackers" + desc = "Despite most of the package being clear, you will never truly know what flavor these are until you eat them." + icon_state = "rice_cracka" + trash_type = /obj/item/trash/vendor_trash/rice_crackers + food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/rice = 2) + tastes = list("incomprehensible flavoring" = 1, "rice cracker" = 2) + foodtypes = JUNKFOOD | GRAIN + custom_price = PAYCHECK_LOWER * 0.8 + +/obj/item/food/vendor_snacks/rice_crackers/make_leave_trash() + AddElement(/datum/element/food_trash, trash_type, FOOD_TRASH_POPABLE) + +/obj/item/trash/vendor_trash/rice_crackers + name = "empty rice crackers bag" + desc = "You never did find out what flavor that was supposed to be, did you?" + icon_state = "rice_cracka_trash" + +/obj/item/food/vendor_snacks/mochi_ice_cream + name = "mochi ice cream balls - vanilla" + desc = "A six pack of mochi ice cream, which is to say vanilla icecream surrounded by mochi. Comes with small plastic skewer for consumption." + icon_state = "mochi_ice" + trash_type = /obj/item/trash/vendor_trash/mochi_ice_cream + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/ice = 3) + tastes = list("rice cake" = 2, "vanilla" = 2) + foodtypes = JUNKFOOD | DAIRY | GRAIN + custom_price = PAYCHECK_LOWER + +/obj/item/food/vendor_snacks/mochi_ice_cream/matcha + name = "mochi ice cream balls - matcha" + desc = "A six pack of mochi ice cream - or, more specifically, matcha icecream surrounded by mochi. Comes with small plastic skewer for consumption." + icon_state = "mochi_ice_green" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/ice = 1, /datum/reagent/consumable/tea = 2) + tastes = list("rice cake" = 1, "bitter matcha" = 2) + custom_price = PAYCHECK_LOWER * 1.2 + +/obj/item/food/vendor_snacks/mochi_ice_cream/matcha/examine_more(mob/user) + . = ..() + . += span_notice("A small label on the container specifies that this icecream is made using only culinary grade matcha grown outside of the Sol system.") + return . + +/obj/item/trash/vendor_trash/mochi_ice_cream + name = "empty mochi ice cream tray" + desc = "Somehow, that tiny plastic skewer it came with has gone missing." + icon_state = "mochi_ice_trash" + +/obj/item/reagent_containers/cup/glass/waterbottle/tea + name = "bottle of tea" + desc = "A bottle of tea brought to you in a convenient plastic bottle." + icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon_state = "tea_bottle" + list_reagents = list(/datum/reagent/consumable/tea = 40) + cap_icon_state = "bottle_cap_tea" + flip_chance = 5 //I fucking dare you + custom_price = PAYCHECK_LOWER * 1.2 + fill_icon_state = null + +/obj/item/reagent_containers/cup/glass/waterbottle/tea/astra + name = "bottle of tea astra" + desc = "A bottle of tea astra, known for the rather unusual tastes the leaf is known to give when brewed." + icon_state = "tea_bottle_blue" + list_reagents = list( + /datum/reagent/consumable/tea = 25, + /datum/reagent/medicine/salglu_solution = 10, // I know this looks strange but this is what tea astra grinds into, tea in the year 25whatever baby + /datum/reagent/consumable/nutriment/vitamin = 5, + ) + custom_price = PAYCHECK_LOWER * 2 + +/obj/item/reagent_containers/cup/glass/waterbottle/tea/strawberry + name = "bottle of strawberry tea" + desc = "A bottle of strawberry flavored tea; does not contain any actual strawberries." + icon_state = "tea_bottle_pink" + list_reagents = list(/datum/reagent/consumable/pinktea = 40) + custom_price = PAYCHECK_LOWER * 2 + +/obj/item/reagent_containers/cup/glass/waterbottle/tea/nip + name = "bottle of catnip tea" + desc = "A bottle of catnip tea, required to be at or under a 50% concentration by the SFDA for safety purposes." + icon_state = "tea_bottle_pink" + list_reagents = list( + /datum/reagent/consumable/catnip_tea = 20, + /datum/reagent/consumable/pinkmilk = 20, // I can't believe they would cut my catnip + ) + custom_price = PAYCHECK_LOWER * 2.5 + +/* +* Mothic Snacks +*/ + +/obj/item/food/vendor_snacks/mothmallow + name = "mothmallow" + desc = "A vacuum sealed bag containing a pretty crushed looking mothmallow, someone save him!" + icon_state = "mothmallow" + trash_type = /obj/item/trash/vendor_trash/mothmallow + food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/sugar = 4) + tastes = list("vanilla" = 1, "cotton" = 1, "chocolate" = 1) + foodtypes = VEGETABLES | SUGAR + custom_price = PAYCHECK_LOWER + +/obj/item/food/vendor_snacks/mothmallow/make_leave_trash() + AddElement(/datum/element/food_trash, trash_type, FOOD_TRASH_POPABLE) + +/obj/item/trash/vendor_trash/mothmallow + name = "empty mothmallow bag" + desc = "Finally he is free." + icon_state = "mothmallow_trash" + +/obj/item/food/vendor_snacks/moth_bag + name = "engine fodder" + desc = "A vacuum sealed bag containing a small portion of colorful engine fodder." + icon_state = "fodder" + trash_type = /obj/item/trash/vendor_trash/moth_bag + food_reagents = list(/datum/reagent/consumable/sugar = 3, /datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/salt = 2) + tastes = list("seeds" = 1, "nuts" = 1, "chocolate" = 1, "salt" = 1, "popcorn" = 1, "potato" = 1) + foodtypes = GRAIN | NUTS | VEGETABLES | SUGAR + custom_price = PAYCHECK_LOWER * 1.2 + +/obj/item/food/vendor_snacks/moth_bag/fuel_jack + name = "fueljack's snack" + desc = "A vacuum sealed bag containing a smaller than usual brick of fueljack's lunch, ultimately downgrading it to a fueljack's snack." + icon_state = "fuel_jack_snack" + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/nutriment/protein = 1) + tastes = list("cabbage" = 1, "potato" = 1, "onion" = 1, "chili" = 1, "cheese" = 1) + foodtypes = DAIRY | VEGETABLES + custom_price = PAYCHECK_LOWER * 1.2 + +/obj/item/food/vendor_snacks/moth_bag/cheesecake + name = "chocolate cheesecake cube" + desc = "A vacuum sealed bag containing a small cube of a mothic style cheesecake, this one is covered in chocolate." + icon_state = "choco_cheese_cake" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/sugar = 4) + tastes = list("cheesecake" = 1, "chocolate" = 1) + foodtypes = SUGAR | FRIED | DAIRY | GRAIN + custom_price = PAYCHECK_LOWER * 1.4 + +/obj/item/food/vendor_snacks/moth_bag/cheesecake/honey + name = "honey cheesecake cube" + desc = "A vacuum sealed bag containing a small cube of a mothic style cheesecake, this one is covered in honey." + icon_state = "honey_cheese_cake" + tastes = list("cheesecake" = 1, "honey" = 1) + foodtypes = SUGAR | FRIED | DAIRY | GRAIN + +/obj/item/trash/vendor_trash/moth_bag + name = "empty mothic snack bag" + desc = "The clear plastic reveals that this no longer holds tasty treats for your winged friends." + icon_state = "moth_bag_trash" + +/obj/item/reagent_containers/cup/soda_cans/nova/lemonade + name = "\improper Gyárhajó 1023: Lemonade" + desc = "A can of lemonade, for those who are into that kind of thing, or just have no choice." + icon_state = "lemonade" + list_reagents = list(/datum/reagent/consumable/lemonade = 30) + drink_type = FRUIT + +/obj/item/reagent_containers/cup/soda_cans/nova/lemonade/examine_more(mob/user) + . = ..() + . += span_notice("Markings on the can indicate this one was made on factory ship 1023 of the Grand Nomad Fleet.") + return . + +/obj/item/reagent_containers/cup/soda_cans/nova/navy_rum + name = "\improper Gyárhajó 1506: Navy Rum" + desc = "A can of navy rum brewed up and imported from a detachment of the nomad fleet, or so the can says." + icon_state = "navy_rum" + list_reagents = list(/datum/reagent/consumable/ethanol/navy_rum = 30) + drink_type = ALCOHOL + +/obj/item/reagent_containers/cup/soda_cans/nova/navy_rum/examine_more(mob/user) + . = ..() + . += span_notice("Markings on the can indicate this one was made on factory ship 1506 of the Grand Nomad Fleet.") + return . + +/obj/item/reagent_containers/cup/soda_cans/nova/soda_water_moth + name = "\improper Gyárhajó 1023: Soda Water" + desc = "A can of soda water. Why not make a rum and soda? Now that you think of it, maybe not." + icon_state = "soda_water" + list_reagents = list(/datum/reagent/consumable/sodawater = 30) + drink_type = SUGAR + +/obj/item/reagent_containers/cup/soda_cans/nova/soda_water_moth/examine_more(mob/user) + . = ..() + . += span_notice("Markings on the can indicate this one was made on factory ship 1023 of the Grand Nomad Fleet.") + return . + +/obj/item/reagent_containers/cup/soda_cans/nova/ginger_beer + name = "\improper Gyárhajó 1023: Ginger Beer" + desc = "A can of ginger beer, don't let the beer part mislead you, this is entirely non-alcoholic." + icon_state = "gingie_beer" + list_reagents = list(/datum/reagent/consumable/sol_dry = 30) + drink_type = SUGAR + +/obj/item/reagent_containers/cup/soda_cans/nova/ginger_beer/examine_more(mob/user) + . = ..() + . += span_notice("Markings on the can indicate this one was made on factory ship 1023 of the Grand Nomad Fleet.") + return . + +/* +* Tiziran Snacks +*/ + +/obj/item/food/vendor_snacks/lizard_bag + name = "candied mushroom" + desc = "An odd treat of the lizard empire, a mushroom dipped in caramel; unfortunately, it seems to have been bagged before the caramel fully hardened." + icon_state = "candied_shroom" + trash_type = /obj/item/trash/vendor_trash/lizard_bag + food_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/caramel = 2) + tastes = list("savouriness" = 1, "sweetness" = 1) + foodtypes = SUGAR | VEGETABLES + custom_price = PAYCHECK_LOWER * 1.4 //Tiziran imports are a bit more expensive overall + +/obj/item/food/vendor_snacks/lizard_bag/make_leave_trash() + AddElement(/datum/element/food_trash, trash_type, FOOD_TRASH_POPABLE) + +/obj/item/food/vendor_snacks/lizard_bag/moon_jerky + name = "moonfish jerky" + desc = "A fish jerky, made from what you can only hope is moonfish. It also seems to taste subtly of barbecue" + icon_state = "moon_jerky" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 2, /datum/reagent/consumable/bbqsauce = 2) + tastes = list("fish" = 1, "smokey sauce" = 1) + foodtypes = MEAT + custom_price = PAYCHECK_LOWER * 1.6 + +/obj/item/trash/vendor_trash/lizard_bag + name = "empty tiziran snack bag" + desc = "All that money importing tiziran snacks just to end at this?" + icon_state = "tizira_bag_trash" + +/obj/item/food/vendor_snacks/lizard_box + name = "tiziran dumplings" + desc = "A three pack of tiziran style dumplings, not actually stuffed with anything." + icon_state = "dumpling" + trash_type = /obj/item/trash/vendor_trash/lizard_box + food_reagents = list(/datum/reagent/consumable/nutriment = 3) + tastes = list("potato" = 1, "earthy heat" = 1) + foodtypes = VEGETABLES | NUTS + custom_price = PAYCHECK_LOWER * 1.6 + +/obj/item/food/vendor_snacks/lizard_box/sweet_roll + name = "honey roll" + desc = "Definitely don't let the guards find out that someone stole your last one." + icon_state = "sweet_roll" + food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/consumable/honey = 2) + tastes = list("bread" = 1, "honey" = 1, "fruit" = 1) + foodtypes = VEGETABLES | NUTS | FRUIT + custom_price = PAYCHECK_LOWER *1.8 + +/obj/item/trash/vendor_trash/lizard_box + name = "empty tiziran snack box" + desc = "Tizira, contributing to the space plastic crisis since 2530." + icon_state = "tizira_box_trash" + +/obj/item/reagent_containers/cup/glass/waterbottle/tea/mushroom + name = "bottle of mushroom tea" + desc = "A bottle of somewhat bitter mushroom tea, a favorite of the Tiziran empire." + icon_state = "tea_bottle_grey" + list_reagents = list(/datum/reagent/consumable/mushroom_tea = 40) + custom_price = PAYCHECK_LOWER * 2 + +/obj/item/reagent_containers/cup/soda_cans/nova/kortara + name = "kortara" + desc = "A can of kortara, alcohol brewed from korta seeds, which gives it a unique peppery spice flavor." + icon_state = "kortara" + list_reagents = list(/datum/reagent/consumable/ethanol/kortara = 30) + drink_type = ALCOHOL diff --git a/modular_doppler/vending_machines/code/vendors.dm b/modular_doppler/vending_machines/code/vendors.dm new file mode 100644 index 0000000000000..de0a4fe451256 --- /dev/null +++ b/modular_doppler/vending_machines/code/vendors.dm @@ -0,0 +1,229 @@ +/obj/effect/spawner/random/vending/snackvend + loot = list( + /obj/machinery/vending/imported/nt, + /obj/machinery/vending/imported/yangyu, + /obj/machinery/vending/imported/mothic, + /obj/machinery/vending/imported/tiziran, +// /obj/machinery/vending/deforest_medvend, //commented out until i'm ready to port them + ) + +/obj/effect/spawner/random/vending/colavend //These can serve both snacks AND drinks so its kinda both of them? + loot = list( + /obj/machinery/vending/imported/nt, + /obj/machinery/vending/imported/yangyu, + /obj/machinery/vending/imported/mothic, + /obj/machinery/vending/imported/tiziran, +// /obj/machinery/vending/deforest_medvend, //commented out until i'm ready to port them + ) + +/datum/supply_pack/vending/imported/fill(obj/structure/closet/crate/target_crate) + . = ..() + for(var/obj/vendor_refill as anything in subtypesof(/obj/item/vending_refill/snack/imported)) + new vendor_refill(target_crate) + +/obj/machinery/vending/imported + icon = 'modular_doppler/vending_machines/icons/imported_vendors.dmi' + icon_state = null + panel_type = "panel15" + default_price = PAYCHECK_CREW * 0.5 + extra_price = PAYCHECK_COMMAND + payment_department = NO_FREEBIES + +/obj/machinery/vending/imported/nt + name = "NT Sustenance Supplier" + desc = "A vending machine serving up only the finest of human college student food." + icon_state = "nt_food" + light_mask = "nt_food-light-mask" + light_color = LIGHT_COLOR_LIGHT_CYAN + product_slogans = "Caution, contents may be selling hot!;Look at these low prices!;Hungry? Me too- Wait, no, you didn't hear that!" + product_categories = list( + list( + "name" = "Snacks", + "icon" = "cookie", + "products" = list( + /obj/item/food/peanuts/random = 6, + /obj/item/food/cnds/random = 6, + /obj/item/food/pistachios = 6, + /obj/item/food/cornchips/random = 6, + /obj/item/food/sosjerky = 6, + /obj/item/reagent_containers/cup/soda_cans/cola = 6, + /obj/item/reagent_containers/cup/soda_cans/lemon_lime = 6, + /obj/item/reagent_containers/cup/soda_cans/starkist = 6, + /obj/item/reagent_containers/cup/soda_cans/pwr_game = 6, + ), + ), + list( + "name" = "Meals", + "icon" = "pizza-slice", + "products" = list( + /obj/item/storage/box/foodpack/nt = 6, + /obj/item/storage/box/foodpack/nt/burger = 6, + /obj/item/storage/box/foodpack/nt/chicken_sammy = 6, + /obj/item/food/vendor_tray_meal/side = 6, + /obj/item/food/vendor_tray_meal/side/crackers_and_jam = 6, + /obj/item/food/vendor_tray_meal/side/crackers_and_cheese = 6, + ), + ), + ) + + refill_canister = /obj/item/vending_refill/snack/imported/nt + +/obj/item/vending_refill/snack/imported/nt + machine_name = "NT Sustenance Supplier" + +/obj/machinery/vending/imported/yangyu + name = "Fudobenda" + desc = "A vendor selling traditional Sol eastern foods of dubious quality." + icon_state = "yangyu_food" + light_mask = "yangyu_food-light-mask" + light_color = LIGHT_COLOR_FLARE + product_slogans = "Fresh farmed space carp from local space!;Imitation lobstrocity sushi choices availible!;Made with traditional recipes and care!" + product_categories = list( + list( + "name" = "Snacks", + "icon" = "cookie", + "products" = list( + /obj/item/reagent_containers/cup/glass/dry_ramen/prepared = 6, + /obj/item/reagent_containers/cup/glass/dry_ramen/prepared/hell = 6, + /obj/item/food/vendor_snacks/rice_crackers = 6, + /obj/item/food/vendor_snacks/mochi_ice_cream = 6, + /obj/item/food/vendor_snacks/mochi_ice_cream/matcha = 6, + /obj/item/reagent_containers/cup/glass/waterbottle/tea = 6, + /obj/item/reagent_containers/cup/glass/waterbottle/tea/astra = 6, + /obj/item/reagent_containers/cup/glass/waterbottle/tea/strawberry = 6, + /obj/item/reagent_containers/cup/glass/waterbottle/tea/nip = 6, + ), + ), + list( + "name" = "Meals", + "icon" = "pizza-slice", + "products" = list( + /obj/item/storage/box/foodpack/yangyu = 6, + /obj/item/storage/box/foodpack/yangyu/sushi = 6, + /obj/item/storage/box/foodpack/yangyu/beef_rice = 6, + /obj/item/food/vendor_tray_meal/side/miso = 6, + /obj/item/food/vendor_tray_meal/side/rice = 6, + /obj/item/food/vendor_tray_meal/side/pickled_vegetables = 6, + ), + ), + ) + + refill_canister = /obj/item/vending_refill/snack/imported/yangyu + initial_language_holder = /datum/language_holder/yangyu_vendor + +/datum/language_holder/yangyu_vendor + understood_languages = list( + /datum/language/yangyu = list(LANGUAGE_ATOM), + ) + spoken_languages = list( + /datum/language/yangyu = list(LANGUAGE_ATOM), + ) + +/obj/machinery/vending/imported/yangyu/examine_more(mob/user) + . = ..() + . += span_notice("Someone appears to have written \"Don't trust the sushi!\" in marker on the side of the vendor.") + return . + +/obj/item/vending_refill/snack/imported/yangyu + machine_name = "Fudobenda" + +/obj/machinery/vending/imported/mothic + name = "Nomad Fleet Ration Chit Exchange" + desc = "One of the Nomad Fleet's own ration vendors; in spite of the name engraved into it, it's been fitted to accept credits." + icon_state = "moth_food" + light_mask = "moth_food-light-mask" + light_color = LIGHT_COLOR_HALOGEN + product_slogans = "Support the fleet, conserve rations today!;Some options in reduced portion and cost!;Do your part to keep the fleet flying!" + product_categories = list( + list( + "name" = "Snacks", + "icon" = "cookie", + "products" = list( + /obj/item/food/vendor_snacks/mothmallow = 6, + /obj/item/food/vendor_snacks/moth_bag = 6, + /obj/item/food/vendor_snacks/moth_bag/fuel_jack = 6, + /obj/item/food/vendor_snacks/moth_bag/cheesecake = 6, + /obj/item/food/vendor_snacks/moth_bag/cheesecake/honey = 6, + /obj/item/reagent_containers/cup/soda_cans/nova/lemonade = 6, + /obj/item/reagent_containers/cup/soda_cans/nova/navy_rum = 6, + /obj/item/reagent_containers/cup/soda_cans/nova/soda_water_moth = 6, + /obj/item/reagent_containers/cup/soda_cans/nova/ginger_beer = 6, + ), + ), + list( + "name" = "Meals", + "icon" = "pizza-slice", + "products" = list( + /obj/item/storage/box/foodpack/moth = 6, + /obj/item/storage/box/foodpack/moth/baked_rice = 6, + /obj/item/storage/box/foodpack/moth/fuel_jack = 6, + /obj/item/food/vendor_tray_meal/side/moffin = 6, + /obj/item/food/vendor_tray_meal/side/cornbread = 6, + /obj/item/food/vendor_tray_meal/side/roasted_seeds = 6, + ), + ), + ) + + refill_canister = /obj/item/vending_refill/snack/imported/mothic + initial_language_holder = /datum/language_holder/moffic_vendor + +/datum/language_holder/moffic_vendor + understood_languages = list( + /datum/language/moffic = list(LANGUAGE_ATOM), + ) + spoken_languages = list( + /datum/language/moffic = list(LANGUAGE_ATOM), + ) + +/obj/item/vending_refill/snack/imported/mothic + machine_name = "Nomad Fleet Ration Chit Exchange" + +/obj/machinery/vending/imported/tiziran + name = "Tiziran Imported Delicacies" + desc = "A vendor serving a fine collection of what is very likely knock-offs of popular Tiziran brands." + icon_state = "tizira_food" + light_mask = "tizira_food-light-mask" + light_color = LIGHT_COLOR_FIRE + product_slogans = "Real imports from the capital itself, we promise!;Rare selections of salt water catch!;Moonfish glaze included with all meat options!" + product_categories = list( + list( + "name" = "Snacks", + "icon" = "cookie", + "products" = list( + /obj/item/food/chips/shrimp = 6, + /obj/item/food/vendor_snacks/lizard_bag = 6, + /obj/item/food/vendor_snacks/lizard_bag/moon_jerky = 6, + /obj/item/food/vendor_snacks/lizard_box = 6, + /obj/item/food/vendor_snacks/lizard_box/sweet_roll = 6, + /obj/item/reagent_containers/cup/glass/bottle/mushi_kombucha = 6, + /obj/item/reagent_containers/cup/glass/waterbottle/tea/mushroom = 6, + /obj/item/reagent_containers/cup/soda_cans/nova/kortara = 6, + ), + ), + list( + "name" = "Meals", + "icon" = "pizza-slice", + "products" = list( + /obj/item/storage/box/foodpack/tizira = 6, + /obj/item/storage/box/foodpack/tizira/roll = 6, + /obj/item/storage/box/foodpack/tizira/stir_fry = 6, + /obj/item/food/vendor_tray_meal/side/root_crackers = 6, + /obj/item/food/vendor_tray_meal/side/korta_brittle = 6, + /obj/item/food/vendor_tray_meal/side/crispy_headcheese = 6, + ), + ), + ) + + refill_canister = /obj/item/vending_refill/snack/imported/tiziran + initial_language_holder = /datum/language_holder/draconic_vendor + +/datum/language_holder/draconic_vendor + understood_languages = list( + /datum/language/draconic = list(LANGUAGE_ATOM), + ) + spoken_languages = list( + /datum/language/draconic = list(LANGUAGE_ATOM), + ) + +/obj/item/vending_refill/snack/imported/tiziran + machine_name = "Tiziran Imported Delicacies" diff --git a/modular_doppler/vending_machines/icons/imported_quick_foods.dmi b/modular_doppler/vending_machines/icons/imported_quick_foods.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4249a5f4f0a482878be19e1225dd95a3314b6a3e GIT binary patch literal 10720 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 xS)%M7x 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 W!qU2Pv`79ma4IXP%a_ZV1^*98e`VnS literal 0 HcmV?d00001 diff --git a/modular_doppler/vending_machines/icons/imported_vendors.dmi b/modular_doppler/vending_machines/icons/imported_vendors.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d26e14e5a38ed97f46a9c43c8ef3b9b28497bb85 GIT binary patch literal 9002 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 Date: Mon, 26 Aug 2024 14:59:39 -0700 Subject: [PATCH 2/5] augh. oraugh. --- .../modular_food_and_drinks/icons/drinks.dmi | Bin 30301 -> 0 bytes .../chemistry_reagents | 101 ++++++++++++++++++ .../food_and_drinks}/alcohol reagents.dm | 97 ++++++++--------- .../food_and_drinks}/drink_reagents.dm | 8 +- .../food_and_drinks/drinks.dm | 87 +++++++++++++++ .../food_and_drinks}/drinks_recipes.dm | 12 +-- .../icons/drinks.dmi | Bin 0 -> 31307 bytes .../vending_machines/code/vendor_snacks.dm | 28 ++--- .../vending_machines/code/vendors.dm | 16 +-- tgstation.dme | 8 +- 10 files changed, 274 insertions(+), 83 deletions(-) delete mode 100644 modular_doppler/modular_food_and_drinks/icons/drinks.dmi create mode 100644 modular_doppler/modular_food_drinks_and_chems/chemistry_reagents rename modular_doppler/{modular_food_and_drinks => modular_food_drinks_and_chems/food_and_drinks}/alcohol reagents.dm (90%) rename modular_doppler/{modular_food_and_drinks => modular_food_drinks_and_chems/food_and_drinks}/drink_reagents.dm (92%) create mode 100644 modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm rename modular_doppler/{modular_food_and_drinks => modular_food_drinks_and_chems/food_and_drinks}/drinks_recipes.dm (98%) create mode 100644 modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi diff --git a/modular_doppler/modular_food_and_drinks/icons/drinks.dmi b/modular_doppler/modular_food_and_drinks/icons/drinks.dmi deleted file mode 100644 index 9ccaa586ac7eba21ef0c14347097ca79d0718ff7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30301 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 diff --git a/modular_doppler/modular_food_drinks_and_chems/chemistry_reagents b/modular_doppler/modular_food_drinks_and_chems/chemistry_reagents new file mode 100644 index 0000000000000..99b6fc2339b82 --- /dev/null +++ b/modular_doppler/modular_food_drinks_and_chems/chemistry_reagents @@ -0,0 +1,101 @@ +/* +/datum/reagent/fuel + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/fuel/oil + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/stable_plasma + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/pax + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/water + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/hellwater + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/carbondioxide + process_flags = REAGENT_ORGANIC | REAGENT_SYNTHETIC + +/datum/reagent/iron + chemical_flags_nova = REAGENT_BLOOD_REGENERATING + +/datum/reagent/blood + chemical_flags_nova = REAGENT_BLOOD_REGENERATING // For Hemophages to be able to drink it without any issue. + +/datum/reagent/blood/on_new(list/data) + . = ..() + + if(!src.data["blood_type"]) + src.data["blood_type"] = random_blood_type() // This is so we don't get blood without a blood type spawned from something that doesn't explicitly set the blood type. + + + +/datum/reagent/stable_plasma/on_mob_life(mob/living/carbon/C) + if(C.mob_biotypes & MOB_ROBOTIC) + C.nutrition = min(C.nutrition + 5, NUTRITION_LEVEL_FULL-1) + ..() + +/datum/reagent/fuel/on_mob_life(mob/living/carbon/C) + if(C.mob_biotypes & MOB_ROBOTIC) + C.nutrition = min(C.nutrition + 5, NUTRITION_LEVEL_FULL-1) + ..() + +/datum/reagent/fuel/oil/on_mob_life(mob/living/carbon/C) + if(C.mob_biotypes & MOB_ROBOTIC && C.blood_volume < BLOOD_VOLUME_NORMAL) + C.blood_volume += 0.5 + ..() + +/datum/reagent/carbondioxide/on_mob_life(mob/living/carbon/C) + if(C.mob_biotypes & MOB_ROBOTIC) + C.nutrition = min(C.nutrition + 5, NUTRITION_LEVEL_FULL-1) + ..() +*/ +// Catnip +/datum/reagent/pax/catnip + name = "Catnip" + taste_description = "grass" + description = "A colourless liquid that makes people more peaceful and felines happier." + metabolization_rate = 1.75 * REAGENTS_METABOLISM + +/datum/reagent/pax/catnip/on_mob_life(mob/living/carbon/M) + if(isfelinid(M)) + if(prob(20)) + M.emote("nya") + if(prob(20)) + to_chat(M, span_notice("[pick("Headpats feel nice.", "Backrubs would be nice.", "Mew")]")) + else + to_chat(M, span_notice("[pick("I feel oddly calm.", "I feel relaxed.", "Mew?")]")) + ..() + +/* +#define DERMAGEN_SCAR_FIX_AMOUNT 10 + +/datum/reagent/medicine/dermagen + name = "Dermagen" + description = "Heals scars formed by past physical trauma when applied. Minimum 10u needed, only works when applied topically." + reagent_state = LIQUID + color = "#FFEBEB" + ph = 6 + chemical_flags = REAGENT_CAN_BE_SYNTHESIZED + +/datum/reagent/medicine/dermagen/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE) + . = ..() + if(!iscarbon(exposed_mob)) + return + if(!(methods & (PATCH|TOUCH|VAPOR))) + return + var/mob/living/carbon/scarred = exposed_mob + if(scarred.stat == DEAD) + show_message = FALSE + if(show_message) + to_chat(scarred, span_danger("The scars on your body start to fade and disappear.")) + if(reac_volume >= DERMAGEN_SCAR_FIX_AMOUNT) + for(var/i in scarred.all_scars) + qdel(i) + +#undef DERMAGEN_SCAR_FIX_AMOUNT +*/ diff --git a/modular_doppler/modular_food_and_drinks/alcohol reagents.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/alcohol reagents.dm similarity index 90% rename from modular_doppler/modular_food_and_drinks/alcohol reagents.dm rename to modular_doppler/modular_food_drinks_and_chems/food_and_drinks/alcohol reagents.dm index 2eb87b99c6e9d..8e639ef8f63b5 100644 --- a/modular_doppler/modular_food_and_drinks/alcohol reagents.dm +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/alcohol reagents.dm @@ -22,7 +22,7 @@ /datum/glass_style/drinking_glass/synthanol required_drink_type = /datum/reagent/consumable/ethanol/synthanol - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "synthanolglass" name = "glass of synthanol" desc = "The equivalent of alcohol for synthetic crewmembers. They'd find it awful if they had tastebuds too." @@ -137,7 +137,7 @@ /datum/glass_style/drinking_glass/hot_toddy required_drink_type = /datum/reagent/consumable/ethanol/hot_toddy - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "hot_toddy" name = "hot toddy glass" desc = "An old fashioned cocktail made of honey, rum, and tea, it tastes like sweet holiday spices." @@ -152,7 +152,7 @@ /datum/glass_style/drinking_glass/hellfire required_drink_type = /datum/reagent/consumable/ethanol/hellfire - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "hellfire" name = "glass of hellfire" desc = "An amber colored drink that isn't quite as hot as it looks." @@ -172,7 +172,7 @@ /datum/glass_style/drinking_glass/sins_delight required_drink_type = /datum/reagent/consumable/ethanol/sins_delight - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "sins_delight" name = "glass of sin's delight" desc = "You can smell the seven sins rolling off the top of the glass." @@ -187,7 +187,7 @@ /datum/glass_style/drinking_glass/strawberry_daiquiri required_drink_type = /datum/reagent/consumable/ethanol/strawberry_daiquiri - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "strawberry_daiquiri" name = "glass of strawberry daiquiri" desc = "Pink looking drink with flowers and a big straw to sip it. Looks sweet and refreshing, perfect for warm days." @@ -202,7 +202,7 @@ /datum/glass_style/drinking_glass/liz_fizz required_drink_type = /datum/reagent/consumable/ethanol/liz_fizz - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "liz_fizz" name = "glass of liz fizz" desc = "Looks like a citrus sherbet seperated in layers? Why would anyone want that is beyond you." @@ -217,7 +217,7 @@ /datum/glass_style/drinking_glass/miami_vice required_drink_type = /datum/reagent/consumable/ethanol/miami_vice - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "miami_vice" name = "glass of miami vice" desc = "Strawberries and coconut, like yin and yang." @@ -232,7 +232,7 @@ /datum/glass_style/drinking_glass/malibu_sunset required_drink_type = /datum/reagent/consumable/ethanol/malibu_sunset - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "malibu_sunset" name = "glass of malibu sunset" desc = "Tropical looking drinks, with ice cubes hovering on the surface and grenadine coloring the bottom." @@ -247,7 +247,7 @@ /datum/glass_style/drinking_glass/hotlime_miami required_drink_type = /datum/reagent/consumable/ethanol/hotlime_miami - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "hotlime_miami" name = "glass of hotlime miami" desc = "This looks very aesthetically pleasing." @@ -268,7 +268,7 @@ /datum/glass_style/drinking_glass/coggrog required_drink_type = /datum/reagent/consumable/ethanol/coggrog - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "coggrog" name = "glass of cog grog" desc = "Not even Ratvar's Four Generals could withstand this! Qevax Jryy!" @@ -283,7 +283,7 @@ /datum/glass_style/drinking_glass/badtouch required_drink_type = /datum/reagent/consumable/ethanol/badtouch - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "badtouch" name = "glass of bad touch" desc = "We're nothing but mammals after all." @@ -298,7 +298,7 @@ /datum/glass_style/drinking_glass/marsblast required_drink_type = /datum/reagent/consumable/ethanol/marsblast - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "marsblast" name = "glass of marsblast" desc = "One of these is enough to leave your face as red as the planet." @@ -313,7 +313,7 @@ /datum/glass_style/drinking_glass/mercuryblast required_drink_type = /datum/reagent/consumable/ethanol/mercuryblast - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "mercuryblast" name = "glass of mercuryblast" desc = "No thermometers were harmed in the creation of this drink" @@ -332,7 +332,7 @@ /datum/glass_style/drinking_glass/piledriver required_drink_type = /datum/reagent/consumable/ethanol/piledriver - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "piledriver" name = "glass of piledriver" desc = "Not the only thing to leave your throat sore." @@ -347,7 +347,7 @@ /datum/glass_style/drinking_glass/zenstar required_drink_type = /datum/reagent/consumable/ethanol/zenstar - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "zenstar" name = "glass of zen star" desc = "You'd think something so balanced would actually taste nice... you'd be dead wrong." @@ -365,7 +365,7 @@ /datum/glass_style/drinking_glass/coldscales required_drink_type = /datum/reagent/consumable/ethanol/coldscales - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "coldscales" name = "glass of coldscales" desc = "A soft green drink that looks inviting!" @@ -386,7 +386,7 @@ /datum/glass_style/drinking_glass/oil_drum required_drink_type = /datum/reagent/consumable/ethanol/oil_drum - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "oil_drum" name = "drum of oil" desc = "A gray can of booze and oil..." @@ -408,7 +408,7 @@ /datum/glass_style/drinking_glass/nord_king required_drink_type = /datum/reagent/consumable/ethanol/nord_king - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "nord_king" name = "keg of nord king" desc = "A dripping keg of red mead." @@ -431,7 +431,7 @@ /datum/glass_style/drinking_glass/velvet_kiss required_drink_type = /datum/reagent/consumable/ethanol/velvet_kiss - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "velvet_kiss" name = "glass of velvet kiss" desc = "Red and white drink for the upper classes or undead." @@ -457,7 +457,7 @@ /datum/glass_style/drinking_glass/abduction_fruit required_drink_type = /datum/reagent/consumable/ethanol/abduction_fruit - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "abduction_fruit" name = "glass of abduction fruit" desc = "Mixed fruits that were never meant to be mixed..." @@ -478,7 +478,7 @@ /datum/glass_style/drinking_glass/bug_zapper required_drink_type = /datum/reagent/consumable/ethanol/bug_zapper - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "bug_zapper" name = "glass of bug zapper" desc = "An odd mix of copper, lemon juice and power meant for non-human consumption." @@ -499,7 +499,7 @@ /datum/glass_style/drinking_glass/mush_crush required_drink_type = /datum/reagent/consumable/ethanol/mush_crush - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "mush_crush" name = "glass of mush crush" desc = "Popular among people that want to grow their own food rather than drink the soil." @@ -520,7 +520,7 @@ /datum/glass_style/drinking_glass/hollow_bone required_drink_type = /datum/reagent/consumable/ethanol/hollow_bone - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "hollow_bone" name = "skull of hollow bone" desc = "Mixing of milk and bone hurting juice for enjoyment for rather skinny people." @@ -541,7 +541,7 @@ /datum/glass_style/drinking_glass/jell_wyrm required_drink_type = /datum/reagent/consumable/ethanol/jell_wyrm - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "jell_wyrm" name = "glass of jell wyrm" desc = "A bubbly drink that is rather inviting to those that don't know who it's meant for." @@ -572,7 +572,7 @@ /datum/glass_style/drinking_glass/laval_spit required_drink_type = /datum/reagent/consumable/ethanol/laval_spit - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "laval_spit" name = "glass of laval spit" desc = "Piping hot drink for those who can stomach the heat of lava." @@ -583,6 +583,7 @@ else quality = DRINK_GOOD return ..() +*/ /datum/reagent/consumable/ethanol/frisky_kitty name = "Frisky Kitty" @@ -593,19 +594,19 @@ /datum/glass_style/drinking_glass/frisky_kitty required_drink_type = /datum/reagent/consumable/ethanol/frisky_kitty - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "frisky_kitty" name = "cup of frisky kitty" desc = "Warm milk and some catnip." -/datum/reagent/consumable/ethanol/frisky_kitty/expose_mob(mob/living/exposed_mob, methods, reac_volume) - if(isfeline(exposed_mob)) +/*/datum/reagent/consumable/ethanol/frisky_kitty/expose_mob(mob/living/exposed_mob, methods, reac_volume) + if(isfelinid(exposed_mob)) quality = RACE_DRINK else quality = DRINK_GOOD - return ..() - + return ..()*/ +/* /datum/reagent/consumable/ethanol/bloodshot_base name = "Bloodshot Base" description = "The bootleg blend of nutrients and alcohol that goes into making Bloodshots. Doesn't taste too great on its own, for Hemophages at least." @@ -627,7 +628,7 @@ /datum/glass_style/drinking_glass/bloodshot required_drink_type = /datum/reagent/consumable/ethanol/bloodshot - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "bloodshot" name = "glass of bloodshot" desc = "The history of the 'Bloodshot' is based in a mix of flavor-neutral chems devised to help deliver nutrients to a Hemophage's tumorous organs. Due to the expense of the real thing and the clinical nature of it, this liquor has been designed as a 'improvised' alternative; though, still tasting like a hangover cure. It smells like iron, giving a clue to the key ingredient." @@ -667,7 +668,7 @@ /datum/glass_style/drinking_glass/blizzard_brew required_drink_type = /datum/reagent/consumable/ethanol/blizzard_brew - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "blizzard_brew" name = "glass of Blizzard Brew" desc = "An ancient recipe. Served best chilled as much as dwarvenly possible." @@ -704,7 +705,7 @@ /datum/glass_style/drinking_glass/molten_mead required_drink_type = /datum/reagent/consumable/ethanol/molten_mead - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "molten_mead" name = "glass of Molten Mead" desc = "Famously known to set beards aflame. Ingest at your own risk!" @@ -736,17 +737,17 @@ /datum/glass_style/drinking_glass/hippie_hooch required_drink_type = /datum/reagent/consumable/ethanol/hippie_hooch - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "hippie_hooch" name = "glass of Hippie Hooch" desc = "Peace and love! Under request of the HR department, this drink is sure to sober you up quickly." -/datum/reagent/consumable/ethanol/hippie_hooch/expose_mob(mob/living/exposed_mob, methods, reac_volume) +/*/datum/reagent/consumable/ethanol/hippie_hooch/expose_mob(mob/living/exposed_mob, methods, reac_volume) if(isdwarf(exposed_mob)) quality = RACE_DRINK else quality = DRINK_FANTASTIC - return ..() + return ..()*/ /datum/reagent/consumable/ethanol/hippie_hooch/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) for(var/effect in status_effects_to_clear) @@ -766,17 +767,17 @@ /datum/glass_style/drinking_glass/research_rum required_drink_type = /datum/reagent/consumable/ethanol/research_rum - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "research_rum" name = "glass of Research Rum" desc = "Cooked up by dwarven scientists, this glowing pink brew is sure to supercharge your thinking. How? Science!" -/datum/reagent/consumable/ethanol/research_rum/expose_mob(mob/living/exposed_mob, methods, reac_volume) +/*/datum/reagent/consumable/ethanol/research_rum/expose_mob(mob/living/exposed_mob, methods, reac_volume) if(isdwarf(exposed_mob)) quality = RACE_DRINK else quality = DRINK_GOOD - return ..() + return ..()*/ /datum/reagent/consumable/ethanol/research_rum/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired) . = ..() @@ -792,17 +793,17 @@ /datum/glass_style/drinking_glass/golden_grog required_drink_type = /datum/reagent/consumable/ethanol/golden_grog - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "golden_grog" name = "glass of Golden Grog" desc = "A drink concocted by a dwarven Quartermaster who had too much time and money on his hands. Commonly ordered by influencers looking to flaunt their wealth." -/datum/reagent/consumable/ethanol/golden_grog/expose_mob(mob/living/exposed_mob, methods, reac_volume) +/*/datum/reagent/consumable/ethanol/golden_grog/expose_mob(mob/living/exposed_mob, methods, reac_volume) if(isdwarf(exposed_mob)) quality = RACE_DRINK else quality = DRINK_FANTASTIC - return ..() + return ..()*/ // RACIAL DRINKS END @@ -816,7 +817,7 @@ /datum/glass_style/drinking_glass/appletini required_drink_type = /datum/reagent/consumable/ethanol/appletini - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "appletini" name = "glass of appletini" desc = "An appley beverage in a martini glass" @@ -832,7 +833,7 @@ /datum/glass_style/drinking_glass/cityofsin required_drink_type = /datum/reagent/consumable/ethanol/quadruple_sec/cityofsin - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "cityofsin" name = "glass of city of sin" desc = "Looking at it makes you recall every mistake you've made." @@ -848,7 +849,7 @@ /datum/glass_style/drinking_glass/shakiri required_drink_type = /datum/reagent/consumable/ethanol/shakiri - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "shakiri" name = "glass of shakiri" desc = "A sweet, fragrant red drink made from fermented kiri fruits. It seems to gently sparkle when exposed to light." @@ -863,7 +864,7 @@ /datum/glass_style/drinking_glass/shakiri_spritz required_drink_type = /datum/reagent/consumable/ethanol/shakiri_spritz - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "shakiri_spritz" name = "glass of shakiri spritz" desc = "A carbonated cocktail made from shakiri and orange juice with soda water." @@ -878,7 +879,7 @@ /datum/glass_style/drinking_glass/crimson_hurricane required_drink_type = /datum/reagent/consumable/ethanol/crimson_hurricane - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "crimson_hurricane" name = "glass of crimson hurricane" desc = "A strong, citrusy cocktail of human origin, now with shakiri and kiri jelly for a delightfully sweet drink." @@ -893,7 +894,7 @@ /datum/glass_style/drinking_glass/shakiri_rogers required_drink_type = /datum/reagent/consumable/ethanol/shakiri_rogers - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "shakiri_rogers" name = "glass of shakiri rogers" desc = "A take on the classic Roy Rogers, with shakiri instead of grenadine. Sweet and refreshing." diff --git a/modular_doppler/modular_food_and_drinks/drink_reagents.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm similarity index 92% rename from modular_doppler/modular_food_and_drinks/drink_reagents.dm rename to modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm index 0becf4329ae8f..645a22c886455 100644 --- a/modular_doppler/modular_food_and_drinks/drink_reagents.dm +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm @@ -7,7 +7,7 @@ /datum/glass_style/drinking_glass/pinkmilk required_drink_type = /datum/reagent/consumable/pinkmilk - icon = 'modular_nova/master_files/icons/obj/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "pinkmilk" name = "tall glass of strawberry milk" desc = "Delicious flavored strawberry syrup mixed with milk." @@ -27,7 +27,7 @@ /datum/glass_style/drinking_glass/pinktea required_drink_type = /datum/reagent/consumable/pinktea - icon = 'modular_nova/master_files/icons/obj/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "pinktea" name = "mug of strawberry tea" desc = "Delicious traditional tea flavored with strawberries." @@ -46,14 +46,14 @@ /datum/glass_style/drinking_glass/catnip_tea required_drink_type = /datum/reagent/consumable/catnip_tea - icon = 'modular_nova/master_files/icons/obj/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "catnip_tea" name = "glass of catnip tea" desc = "A purrfect drink for a cat." /datum/reagent/consumable/catnip_tea/on_mob_life(mob/living/carbon/M) M.adjustStaminaLoss(min(50 - M.getStaminaLoss(), 3)) - if(isfeline(M)) + if(isfelinid(M)) if(prob(20)) M.emote("nya") if(prob(20)) diff --git a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm new file mode 100644 index 0000000000000..882f440c220c7 --- /dev/null +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks.dm @@ -0,0 +1,87 @@ +/// How much fizziness is added to the can of soda by throwing it, in percentage points +#define SODA_FIZZINESS_THROWN 15 +/// How much fizziness is added to the can of soda by shaking it, in percentage points +#define SODA_FIZZINESS_SHAKE 5 + +/obj/item/reagent_containers/cup/soda_cans/doppler + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' + icon_state = null + +/obj/item/reagent_containers/cup/soda_cans/doppler/attack(mob/M, mob/living/user) + if(istype(M, /mob/living/carbon) && !reagents.total_volume && user.combat_mode && user.zone_selected == BODY_ZONE_HEAD) + if(M == user) + user.visible_message(span_warning("[user] crushes the can of [src] on [user.p_their()] forehead!"), span_notice("You crush the can of [src] on your forehead.")) + else + user.visible_message(span_warning("[user] crushes the can of [src] on [M]'s forehead!"), span_notice("You crush the can of [src] on [M]'s forehead.")) + playsound(M,'sound/weapons/pierce.ogg', rand(10,50), TRUE) + var/obj/item/trash/can/doppler/crushed_can = new /obj/item/trash/can/doppler(M.loc) + crushed_can.icon_state = icon_state + qdel(src) + return TRUE + . = ..() + +/obj/item/reagent_containers/cup/soda_cans/doppler/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit = FALSE) + . = ..() + + if(. != BULLET_ACT_HIT) + return + + if(hitting_projectile.damage > 0 && hitting_projectile.damage_type == BRUTE && !QDELETED(src)) + var/obj/item/trash/can/doppler/crushed_can = new /obj/item/trash/can/doppler(src.loc) + crushed_can.icon_state = icon_state + var/atom/throw_target = get_edge_target_turf(crushed_can, pick(GLOB.alldirs)) + crushed_can.throw_at(throw_target, rand(1,2), 7) + qdel(src) + return + +/** + * Burst the soda open on someone. Fun! Opens and empties the soda can, but does not crush it. + * + * Arguments: + * * target - Who's getting covered in soda + * * hide_message - Stops the generic fizzing message, so you can do your own + */ + +/obj/item/reagent_containers/cup/soda_cans/doppler/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) + . = ..() + if(. || spillable || !reagents.total_volume) // if it was caught, already opened, or has nothing in it + return + + fizziness += SODA_FIZZINESS_THROWN + if(!prob(fizziness)) + return + + burst_soda(hit_atom, hide_message = TRUE) + visible_message(span_danger("[src]'s impact with [hit_atom] causes it to rupture, spilling everywhere!")) + var/obj/item/trash/can/doppler/crushed_can = new /obj/item/trash/can/doppler(src.loc) + crushed_can.icon_state = icon_state + moveToNullspace() + QDEL_IN(src, 1 SECONDS) // give it a second so it can still be logged for the throw impact + +/obj/item/trash/can/doppler + icon = 'modular_doppler/clutter objects/icons/janitor.dmi' + icon_state = "lemonade" + +/obj/item/reagent_containers/cup/soda_cans/doppler/lubricola + name = "LubriCola" + desc = "The perfect lubricant for your weary gears." + icon_state = "lubricola" + list_reagents = list(/datum/reagent/fuel/oil = 30) + custom_price = PAYCHECK_LOWER * 1.2 + +/obj/item/reagent_containers/cup/soda_cans/doppler/welding_fizz + name = "Welding Fizz" + desc = "More energy than in an IED! Now carbonated. WARNING: Contains toxic and flammable fuels." + icon_state = "welding_fizz" + list_reagents = list(/datum/reagent/fuel = 25, /datum/reagent/carbondioxide = 5) + custom_price = PAYCHECK_LOWER * 1.2 + +/*/obj/item/reagent_containers/cup/soda_cans/doppler/synthanolcan + name = "Silly Cone's Synthanol" + desc = "A recompiling can of synthanol." + icon_state = "synthanolcan" + list_reagents = list(/datum/reagent/consumable/ethanol/synthanol = 30) + custom_price = PAYCHECK_CREW*/ + +#undef SODA_FIZZINESS_THROWN +#undef SODA_FIZZINESS_SHAKE diff --git a/modular_doppler/modular_food_and_drinks/drinks_recipes.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm similarity index 98% rename from modular_doppler/modular_food_and_drinks/drinks_recipes.dm rename to modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm index 46e4a95a37e42..0e9f8686d0386 100644 --- a/modular_doppler/modular_food_and_drinks/drinks_recipes.dm +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm @@ -197,7 +197,7 @@ /datum/reagent/consumable/berryjuice = 1, ) -/datum/chemical_reaction/drink/blizzard_brew +/*/datum/chemical_reaction/drink/blizzard_brew results = list(/datum/reagent/consumable/ethanol/blizzard_brew = 3) required_reagents = list( /datum/reagent/consumable/ethanol/iced_beer = 1, @@ -215,7 +215,7 @@ /datum/reagent/consumable/ethanol/mauna_loa = 1, ) mix_message = "You hear sizzling flesh and angry wasps buzzing as it mixes." - mix_sound = 'sound/effects/wounds/sizzle2.ogg' + mix_sound = 'sound/effects/wounds/sizzle2.ogg'*/ /datum/chemical_reaction/drink/hippie_hooch results = list(/datum/reagent/consumable/ethanol/hippie_hooch = 5) @@ -225,7 +225,7 @@ /datum/reagent/medicine/earthsblood = 1, ) mix_message = "You hear wood flutes and nature as it mixes." - mix_sound = 'modular_skyrat/modules/emotes/sound/voice/hoot.ogg' + mix_sound = 'modular_doppler/emotes/sound/hoot.ogg' /datum/chemical_reaction/drink/research_rum results = list(/datum/reagent/consumable/ethanol/research_rum = 4) @@ -332,7 +332,7 @@ /datum/reagent/sulfur = 5, ) required_temp = 900 // (626.85'C) - +*/ /datum/chemical_reaction/drink/frisky_kitty results = list(/datum/reagent/consumable/ethanol/frisky_kitty = 2) required_reagents = list( @@ -340,7 +340,7 @@ /datum/reagent/consumable/milk = 1, ) required_temp = 296 //Just above room temp (22.85'C) - +/* /datum/chemical_reaction/drink/bloodshot_base results = list(/datum/reagent/consumable/ethanol/bloodshot_base = 2) required_reagents = list( @@ -358,7 +358,7 @@ reaction_tags = REACTION_TAG_DRINK | REACTION_TAG_EASY | REACTION_TAG_OTHER */ -// Non-Booze, see modular_skyrat\modules\customization\modules\reagents\chemistry\reagents\drink_reagents.dm +// Non-Booze /datum/chemical_reaction/drink/pinkmilk results = list(/datum/reagent/consumable/pinkmilk = 2) diff --git a/modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi b/modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0b1eaf31cf57162d001c77b3d106de269c5afab0 GIT binary patch literal 31307 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 literal 0 HcmV?d00001 diff --git a/modular_doppler/vending_machines/code/vendor_snacks.dm b/modular_doppler/vending_machines/code/vendor_snacks.dm index 36778ad36f5cc..4d2b42c3911c3 100644 --- a/modular_doppler/vending_machines/code/vendor_snacks.dm +++ b/modular_doppler/vending_machines/code/vendor_snacks.dm @@ -11,7 +11,7 @@ junkiness = 10 custom_price = PAYCHECK_LOWER * INFINITY tastes = list("the unmatched power of the sun" = 10) - foodtypes = JUNKFOOD | CLOTH | GORE | NUTS | FRIED | FRUIT //You don't want to know what's in the broken debug snacks + foodtypes = JUNKFOOD | CLOTH | GORE | NUTS | FRIED | FRUIT w_class = WEIGHT_CLASS_SMALL /obj/item/trash/vendor_trash @@ -86,11 +86,11 @@ /obj/item/reagent_containers/cup/glass/waterbottle/tea name = "bottle of tea" desc = "A bottle of tea brought to you in a convenient plastic bottle." - icon = 'modular_doppler/modular_food_and_drinks/icons/drinks.dmi' + icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' icon_state = "tea_bottle" list_reagents = list(/datum/reagent/consumable/tea = 40) cap_icon_state = "bottle_cap_tea" - flip_chance = 5 //I fucking dare you + flip_chance = 5 custom_price = PAYCHECK_LOWER * 1.2 fill_icon_state = null @@ -100,7 +100,7 @@ icon_state = "tea_bottle_blue" list_reagents = list( /datum/reagent/consumable/tea = 25, - /datum/reagent/medicine/salglu_solution = 10, // I know this looks strange but this is what tea astra grinds into, tea in the year 25whatever baby + /datum/reagent/medicine/salglu_solution = 10, /datum/reagent/consumable/nutriment/vitamin = 5, ) custom_price = PAYCHECK_LOWER * 2 @@ -118,7 +118,7 @@ icon_state = "tea_bottle_pink" list_reagents = list( /datum/reagent/consumable/catnip_tea = 20, - /datum/reagent/consumable/pinkmilk = 20, // I can't believe they would cut my catnip + /datum/reagent/consumable/pinkmilk = 20, ) custom_price = PAYCHECK_LOWER * 2.5 @@ -184,50 +184,50 @@ desc = "The clear plastic reveals that this no longer holds tasty treats for your winged friends." icon_state = "moth_bag_trash" -/obj/item/reagent_containers/cup/soda_cans/nova/lemonade +/obj/item/reagent_containers/cup/soda_cans/doppler/lemonade name = "\improper Gyárhajó 1023: Lemonade" desc = "A can of lemonade, for those who are into that kind of thing, or just have no choice." icon_state = "lemonade" list_reagents = list(/datum/reagent/consumable/lemonade = 30) drink_type = FRUIT -/obj/item/reagent_containers/cup/soda_cans/nova/lemonade/examine_more(mob/user) +/obj/item/reagent_containers/cup/soda_cans/doppler/lemonade/examine_more(mob/user) . = ..() . += span_notice("Markings on the can indicate this one was made on factory ship 1023 of the Grand Nomad Fleet.") return . -/obj/item/reagent_containers/cup/soda_cans/nova/navy_rum +/obj/item/reagent_containers/cup/soda_cans/doppler/navy_rum name = "\improper Gyárhajó 1506: Navy Rum" desc = "A can of navy rum brewed up and imported from a detachment of the nomad fleet, or so the can says." icon_state = "navy_rum" list_reagents = list(/datum/reagent/consumable/ethanol/navy_rum = 30) drink_type = ALCOHOL -/obj/item/reagent_containers/cup/soda_cans/nova/navy_rum/examine_more(mob/user) +/obj/item/reagent_containers/cup/soda_cans/doppler/navy_rum/examine_more(mob/user) . = ..() . += span_notice("Markings on the can indicate this one was made on factory ship 1506 of the Grand Nomad Fleet.") return . -/obj/item/reagent_containers/cup/soda_cans/nova/soda_water_moth +/obj/item/reagent_containers/cup/soda_cans/doppler/soda_water_moth name = "\improper Gyárhajó 1023: Soda Water" desc = "A can of soda water. Why not make a rum and soda? Now that you think of it, maybe not." icon_state = "soda_water" list_reagents = list(/datum/reagent/consumable/sodawater = 30) drink_type = SUGAR -/obj/item/reagent_containers/cup/soda_cans/nova/soda_water_moth/examine_more(mob/user) +/obj/item/reagent_containers/cup/soda_cans/doppler/soda_water_moth/examine_more(mob/user) . = ..() . += span_notice("Markings on the can indicate this one was made on factory ship 1023 of the Grand Nomad Fleet.") return . -/obj/item/reagent_containers/cup/soda_cans/nova/ginger_beer +/obj/item/reagent_containers/cup/soda_cans/doppler/ginger_beer name = "\improper Gyárhajó 1023: Ginger Beer" desc = "A can of ginger beer, don't let the beer part mislead you, this is entirely non-alcoholic." icon_state = "gingie_beer" list_reagents = list(/datum/reagent/consumable/sol_dry = 30) drink_type = SUGAR -/obj/item/reagent_containers/cup/soda_cans/nova/ginger_beer/examine_more(mob/user) +/obj/item/reagent_containers/cup/soda_cans/doppler/ginger_beer/examine_more(mob/user) . = ..() . += span_notice("Markings on the can indicate this one was made on factory ship 1023 of the Grand Nomad Fleet.") return . @@ -294,7 +294,7 @@ list_reagents = list(/datum/reagent/consumable/mushroom_tea = 40) custom_price = PAYCHECK_LOWER * 2 -/obj/item/reagent_containers/cup/soda_cans/nova/kortara +/obj/item/reagent_containers/cup/soda_cans/doppler/kortara name = "kortara" desc = "A can of kortara, alcohol brewed from korta seeds, which gives it a unique peppery spice flavor." icon_state = "kortara" diff --git a/modular_doppler/vending_machines/code/vendors.dm b/modular_doppler/vending_machines/code/vendors.dm index de0a4fe451256..f5a4085f79a4c 100644 --- a/modular_doppler/vending_machines/code/vendors.dm +++ b/modular_doppler/vending_machines/code/vendors.dm @@ -4,16 +4,16 @@ /obj/machinery/vending/imported/yangyu, /obj/machinery/vending/imported/mothic, /obj/machinery/vending/imported/tiziran, -// /obj/machinery/vending/deforest_medvend, //commented out until i'm ready to port them +// /obj/machinery/vending/deforest_medvend, ) -/obj/effect/spawner/random/vending/colavend //These can serve both snacks AND drinks so its kinda both of them? +/obj/effect/spawner/random/vending/colavend //These can serve both snacks AND drinks so it's kinda both of them? loot = list( /obj/machinery/vending/imported/nt, /obj/machinery/vending/imported/yangyu, /obj/machinery/vending/imported/mothic, /obj/machinery/vending/imported/tiziran, -// /obj/machinery/vending/deforest_medvend, //commented out until i'm ready to port them +// /obj/machinery/vending/deforest_medvend, ) /datum/supply_pack/vending/imported/fill(obj/structure/closet/crate/target_crate) @@ -144,10 +144,10 @@ /obj/item/food/vendor_snacks/moth_bag/fuel_jack = 6, /obj/item/food/vendor_snacks/moth_bag/cheesecake = 6, /obj/item/food/vendor_snacks/moth_bag/cheesecake/honey = 6, - /obj/item/reagent_containers/cup/soda_cans/nova/lemonade = 6, - /obj/item/reagent_containers/cup/soda_cans/nova/navy_rum = 6, - /obj/item/reagent_containers/cup/soda_cans/nova/soda_water_moth = 6, - /obj/item/reagent_containers/cup/soda_cans/nova/ginger_beer = 6, + /obj/item/reagent_containers/cup/soda_cans/doppler/lemonade = 6, + /obj/item/reagent_containers/cup/soda_cans/doppler/navy_rum = 6, + /obj/item/reagent_containers/cup/soda_cans/doppler/soda_water_moth = 6, + /obj/item/reagent_containers/cup/soda_cans/doppler/ginger_beer = 6, ), ), list( @@ -197,7 +197,7 @@ /obj/item/food/vendor_snacks/lizard_box/sweet_roll = 6, /obj/item/reagent_containers/cup/glass/bottle/mushi_kombucha = 6, /obj/item/reagent_containers/cup/glass/waterbottle/tea/mushroom = 6, - /obj/item/reagent_containers/cup/soda_cans/nova/kortara = 6, + /obj/item/reagent_containers/cup/soda_cans/doppler/kortara = 6, ), ), list( diff --git a/tgstation.dme b/tgstation.dme index 09e3158f0e881..6912ffc21f0a7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6362,9 +6362,11 @@ #include "modular_doppler\emotes\code\added_emotes\robot_sounds.dm" #include "modular_doppler\face_mouse_preferences\code\face_mouse_pref.dm" #include "modular_doppler\languages\language_datums.dm" -#include "modular_doppler\modular_food_and_drinks\alcohol reagents.dm" -#include "modular_doppler\modular_food_and_drinks\drink_reagents.dm" -#include "modular_doppler\modular_food_and_drinks\drinks_recipes.dm" +#include "modular_doppler\modular_food_drinks_and_chems\chemistry_reagents" +#include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\alcohol reagents.dm" +#include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\drink_reagents.dm" +#include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\drinks.dm" +#include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\drinks_recipes.dm" #include "modular_doppler\vending_machines\code\vendor_containers.dm" #include "modular_doppler\vending_machines\code\vendor_food.dm" #include "modular_doppler\vending_machines\code\vendor_snacks.dm" From a5bdef1cf51281a8464f4eb40f86335b21386c30 Mon Sep 17 00:00:00 2001 From: L <105110468+kittysmooch@users.noreply.github.com> Date: Mon, 26 Aug 2024 15:10:54 -0700 Subject: [PATCH 3/5] who among us has never fallen prey to this one --- .../{chemistry_reagents => chemistry_reagents.dm} | 0 tgstation.dme | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename modular_doppler/modular_food_drinks_and_chems/{chemistry_reagents => chemistry_reagents.dm} (100%) diff --git a/modular_doppler/modular_food_drinks_and_chems/chemistry_reagents b/modular_doppler/modular_food_drinks_and_chems/chemistry_reagents.dm similarity index 100% rename from modular_doppler/modular_food_drinks_and_chems/chemistry_reagents rename to modular_doppler/modular_food_drinks_and_chems/chemistry_reagents.dm diff --git a/tgstation.dme b/tgstation.dme index 6912ffc21f0a7..d2e9d8eab8465 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6362,7 +6362,7 @@ #include "modular_doppler\emotes\code\added_emotes\robot_sounds.dm" #include "modular_doppler\face_mouse_preferences\code\face_mouse_pref.dm" #include "modular_doppler\languages\language_datums.dm" -#include "modular_doppler\modular_food_drinks_and_chems\chemistry_reagents" +#include "modular_doppler\modular_food_drinks_and_chems\chemistry_reagents.dm" #include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\alcohol reagents.dm" #include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\drink_reagents.dm" #include "modular_doppler\modular_food_drinks_and_chems\food_and_drinks\drinks.dm" From 49d5d1014457de201022dd014413339127b26aaf Mon Sep 17 00:00:00 2001 From: L <105110468+kittysmooch@users.noreply.github.com> Date: Mon, 26 Aug 2024 19:15:23 -0700 Subject: [PATCH 4/5] ez --- .../items/circuitboards/machines/machine_circuitboards.dm | 2 +- modular_doppler/vending_machines/code/vendor_snacks.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm index d5c5dbd4db39e..53fef07eb194a 100644 --- a/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machines/machine_circuitboards.dm @@ -666,7 +666,7 @@ /obj/machinery/vending/wardrobe/science_wardrobe = "SciDrobe", /obj/machinery/vending/wardrobe/sec_wardrobe = "SecDrobe", /obj/machinery/vending/wardrobe/viro_wardrobe = "ViroDrobe", - /obj/machinery/vending/imported = "NT Sustenance Supplier", //DOPPLER ADDITION + /obj/machinery/vending/imported/nt = "NT Sustenance Supplier", //DOPPLER ADDITION /obj/machinery/vending/imported/yangyu = "Fudobenda", //DOPPLER ADDITION /obj/machinery/vending/imported/mothic = "Nomad Fleet Ration Chit Exchange", //DOPPLER ADDITION /obj/machinery/vending/imported/tiziran = "Tiziran Imported Delicacies", //DOPPLER ADDITION diff --git a/modular_doppler/vending_machines/code/vendor_snacks.dm b/modular_doppler/vending_machines/code/vendor_snacks.dm index 4d2b42c3911c3..0b5fd481f2b4d 100644 --- a/modular_doppler/vending_machines/code/vendor_snacks.dm +++ b/modular_doppler/vending_machines/code/vendor_snacks.dm @@ -86,7 +86,7 @@ /obj/item/reagent_containers/cup/glass/waterbottle/tea name = "bottle of tea" desc = "A bottle of tea brought to you in a convenient plastic bottle." - icon = 'modular_doppler/modular_food_drinks_and_chems/icons/drinks.dmi' + icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' icon_state = "tea_bottle" list_reagents = list(/datum/reagent/consumable/tea = 40) cap_icon_state = "bottle_cap_tea" From 268cec510864815276508128935d9d68ec74950a Mon Sep 17 00:00:00 2001 From: L <105110468+kittysmooch@users.noreply.github.com> Date: Thu, 29 Aug 2024 04:11:30 -0700 Subject: [PATCH 5/5] yeah that's fine --- .../food_and_drinks/drink_reagents.dm | 2 +- .../food_and_drinks/drinks_recipes.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm index 645a22c886455..062854fc73b3d 100644 --- a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drink_reagents.dm @@ -18,7 +18,7 @@ ..() . = 1 -/datum/reagent/consumable/pinktea //Tiny Tim song +/datum/reagent/consumable/pinktea name = "Strawberry Tea" description = "A timeless classic!" color = "#f76aeb"//rgb(247, 106, 235) diff --git a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm index 0e9f8686d0386..420fea48fb751 100644 --- a/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm +++ b/modular_doppler/modular_food_drinks_and_chems/food_and_drinks/drinks_recipes.dm @@ -249,7 +249,7 @@ mix_message = "You hear golden coins and snobby rich laughing as it mixes." mix_sound = 'sound/items/coinflip.ogg' -/* DEPRECATED UNTIL WE'RE READY +/* MORE STUFF WE CAN'T USE YET // RACE SPECIFIC DRINKS /datum/chemical_reaction/drink/coldscales