diff --git a/code/_globalvars/lists/reagents.dm b/code/_globalvars/lists/reagents.dm index 9477c91fd04..7a3c89933b0 100644 --- a/code/_globalvars/lists/reagents.dm +++ b/code/_globalvars/lists/reagents.dm @@ -45,7 +45,9 @@ GLOBAL_LIST_INIT(drinks, list("beer2","hot_coco","orangejuice","tomatojuice","li "mead","iced_beer","grog","aloe","andalusia","alliescocktail","soy_latte", "cafe_latte","acidspit","amasec","neurotoxin","hippiesdelight","bananahonk", "silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini", "flamingmoe", - "arnold_palmer","gimlet","sidecar","whiskeysour","mintjulep","pinacolada")) + "arnold_palmer","gimlet","sidecar","whiskeysour","mintjulep","pinacolada","sontse","ahdomaieclipse", + "beachfeast","fyrsskartears","junglevox","slimemold","dieseife","aciddreams","islaywhiskey","ultramatter", + "howler", "dionasmash")) //Liver Toxins list GLOBAL_LIST_INIT(liver_toxins, list("toxin", "plasma", "sacid", "facid", "cyanide","amanitin", "carpotoxin")) diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm index 53b91e19fd1..76d9e215ea7 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol.dm @@ -1531,4 +1531,251 @@ drink_desc = "Your mind bubbles and oozes as it tries to comprehend what it's seeing. What the HELL is this?" taste_description = "bilk, cream, and cold tears" +/datum/reagent/consumable/ethanol/sontse + name = "Sontse" + id = "sontse" + description = "You see sun bobbing inside of this drink. How this is even possible?" + color = "#DDB520" // rgb: 221, 181, 32 + alcohol_perc = 0.4 + drink_icon = "sontse" + drink_name = "Sontse" + drink_desc = "The Sun, The Sun, The Sun, The Sun, The Sun, THE SUN!" + taste_description = "warmth and brightness" + var/light_activated = FALSE +/datum/reagent/consumable/ethanol/sontse/on_mob_life(mob/living/M) + if(current_cycle != 5 || !ismoth(M)) + return ..() + to_chat(M, "The Sun was within you all this time!") + if(!light_activated) + M.set_light(2) + light_activated = TRUE + return ..() + +/datum/reagent/consumable/ethanol/sontse/on_mob_delete(mob/living/M) + if(!ismoth(M)) + return ..() + to_chat(M, "The Sun within you subsides.") + M.set_light(0) + ..() + +/datum/reagent/consumable/ethanol/ahdomai_eclipse + name = "Ahdomai's Eclipse" + id = "ahdomaieclipse" + description = "Blizzard in a glass. Tajaran signature drink!" + color = "#DAE0E6" // rgb: 218, 224, 230 + alcohol_perc = 0.1 + drink_icon = "ahdomaieclipse" + drink_name = "Ahdomai's Eclipse" + drink_desc = "Blizzard in a glass. Tajaran signature drink!" + taste_description = "ice" + +/datum/reagent/consumable/ethanol/ahdomai_eclipse/on_mob_life(mob/living/M) + if(!istajaran(M)) + return ..() + if(M.bodytemperature > 250) + M.bodytemperature = max(250, M.bodytemperature - (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) + + +/datum/reagent/consumable/ethanol/beach_feast + name = "Feast by the Beach" + id = "beachfeast" + description = "A classic Unathi drink. You can spot sand sediment at the bottom of the glass. The drink is hot as hell and more." + color = "#E8E800" // rgb: 232, 232, 0 + alcohol_perc = 0.2 + drink_icon = "beachfeast" + drink_name = "Feast by the Beach" + drink_desc = "A classic Unathi drink. You can spot sand sediment at the bottom of the glass. The drink is hot as hell and more." + taste_description = "sand" + +/datum/reagent/consumable/ethanol/beach_feast/on_mob_life(mob/living/M) + if(!isunathi(M)) + return ..() + if(M.bodytemperature < 360) + M.bodytemperature = min(360, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) + return ..() + +/datum/reagent/consumable/ethanol/jungle_vox + name = "Jungle Vox" + id = "junglevox" + description = "Classy drink in a glass vox head with a bit of liquid nitrogen added on." + color = "#1ED1CE" // rgb: 30, 209, 206 + alcohol_perc = 0.2 + drink_icon = "junglevox" + drink_name = "Jungle Vox" + drink_desc = "Classy drink in a glass vox head with a bit of liquid nitrogen added on." + taste_description = "bubbles" + +/datum/reagent/consumable/ethanol/jungle_vox/on_mob_life(mob/living/M) + if(current_cycle <= 5 || !isvox(M)) + return ..() + if(M.health > 0) + M.adjustOxyLoss(-1 * REAGENTS_EFFECT_MULTIPLIER, FALSE) + M.AdjustLoseBreath(-2 SECONDS) + return ..() + +/datum/reagent/consumable/ethanol/slime_mold + name = "Slime Mold" + id = "slimemold" + description = "You can swear that this jelly looks alive." + color = "#C20458" // rgb: 194, 4, 88 + alcohol_perc = 0.2 + drink_icon = "slimemold" + drink_name = "Slime Mold" + drink_desc = "You can swear that this jelly looks alive." + taste_description = "jelly" + +/datum/reagent/consumable/ethanol/slime_mold/on_mob_life(mob/living/M) + if(!isslimeperson(M)) + return ..() + var/mob/living/carbon/human/H = M + if(!(NO_BLOOD in H.dna.species.species_traits)) + if(H.blood_volume < BLOOD_VOLUME_NORMAL) + H.blood_volume += REAGENTS_METABOLISM / 2 // half of the reagent is converted into blood, netting us just a little bit + return ..() + +/datum/reagent/consumable/ethanol/die_seife + name = "Die Seife" + id = "dieseife" + description = "There is a piece of soap at the bottom of the glass and it is slowly melting." + color = "#9D9E89" // rgb: 157, 158, 137 + alcohol_perc = 0.2 + drink_icon = "dieseife" + drink_name = "Die Seife" + drink_desc = "There is a piece of soap at the bottom of the glass and it is slowly melting." + taste_description = "soap" + +/datum/reagent/consumable/ethanol/die_seife/on_mob_life(mob/living/M) + if(current_cycle % 10 != 0 || !isdrask(M)) + return ..() + + if(prob(50)) + to_chat(M, "Your skin emits a soapy liquid from its pores cleaning you in the process.") + M.clean_blood() + return ..() + +/datum/reagent/consumable/ethanol/acid_dreams + name = "Acid Dreams" + id = "aciddreams" + description = "This one looks just wierd and reeks of acid." + color = "#B7FF6A" // rgb: 183, 255, 106 + alcohol_perc = 0.7 + drink_icon = "aciddreams" + drink_name = "Acid Dreams" + drink_desc = "This one looks just wierd and reeks of acid." + taste_description = "acid" + +/datum/reagent/consumable/ethanol/acid_dreams/on_mob_life(mob/living/M) + if(current_cycle % 10 != 0 || !isgrey(M)) + return ..() + if(prob(50)) + var/list/mob/living/targets = list() + for(var/mob/living/L in orange(14, M)) + if(L.is_dead() || !L.client) //we don't care about dead mobs + continue + targets += L + var/mob/living/target = pick(targets) + if(target) + to_chat(target, "You feel that [M.name] is somewhere near.") + return ..() + +/datum/reagent/consumable/ethanol/islay_whiskey + name = "Islay Whiskey" + id = "islaywhiskey" + description = "Named in honor of one of the most gritty and earth smelling types of Whiskey of Earth, this drink is a treat for any Diona." + color = "#461300" // rgb: 70, 19, 0 + alcohol_perc = 0.2 + drink_icon = "islaywhiskey" + drink_name = "Islay Whiskey" + drink_desc = "Named in honor of one of the most gritty and earth smelling types of Whiskey of Earth, this drink is a treat for any Diona." + taste_description = "soil" + +/datum/reagent/consumable/ethanol/islay_whiskey/on_mob_life(mob/living/M) + if(current_cycle <=5 || !isdiona(M)) + return ..() + + var/mob/living/carbon/human/H = M + var/turf/T = get_turf(H) + var/light_amount = min(1, T.get_lumcount()) - 0.5 + + if(light_amount > 0.2 && !H.suiciding && H.health > 0) + H.adjustBruteLoss(-0.25) + H.adjustToxLoss(-0.25) + H.adjustOxyLoss(-0.25) + return ..() + +/datum/reagent/consumable/ethanol/ultramatter + name = "Ultramatter" + id = "ultramatter" + description = "In the triangle of fire, this is apex of fuel." + color = "#38004B" // rgb: 56, 0, 75 + alcohol_perc = 0.7 + drink_icon = "ultramatter" + drink_name = "Ultramatter" + drink_desc = "In the triangle of fire, this is apex of fuel." + taste_description = "fire" + var/on_fire = FALSE + +/datum/reagent/consumable/ethanol/ultramatter/on_mob_life(mob/living/M) + // species agnostic as it is DRINKS on_fire, so only plasmaman can get it + if(on_fire) + M.adjust_fire_stacks(-1) + on_fire = FALSE + + if(current_cycle % 10 != 0 || !isplasmaman(M)) + return ..() + + if(prob(30)) + var/mob/living/carbon/human/H = M + to_chat(M, "You expell flaming substance from within your suit.") + var/obj/item/clothing/under/plasmaman/suit = H.w_uniform + if(suit) + suit.next_extinguish = world.time + 10 SECONDS + H.adjust_fire_stacks(1) + H.IgniteMob() + on_fire = TRUE + + return ..() + +/datum/reagent/consumable/ethanol/howler + name = "Howler" + id = "howler" + description = "Old classic human drink that was adopted by Vulpkanin." + color = "#EC6400" // rgb: 236, 100, 0 + alcohol_perc = 0.2 + drink_icon = "howler" + drink_name = "Howler" + drink_desc = "Old classic human drink that was adopted by Vulpkanin." + taste_description = "citrus" + +/datum/reagent/consumable/ethanol/howler/on_mob_life(mob/living/M) + if(!isvulpkanin(M)) + return ..() + + var/mob/living/carbon/human/H = M + if(H.health > 0) + H.adjustToxLoss(-0.5) + + return ..() + +/datum/reagent/consumable/ethanol/diona_smash + name = "Diona Smash" + id = "dionasmash" + description = "Fake Diona is floating carelessly in the middle of this drink." + color = "#00531D" // rgb: 0, 83, 29 + alcohol_perc = 0.7 + drink_icon = "dionasmash" + drink_name = "Diona Smash" + drink_desc = "Fake Diona is floating carelessly in the middle of this drink." + taste_description = "the crunch" + var/mutated = FALSE + +/datum/reagent/consumable/ethanol/diona_smash/on_mob_life(mob/living/M) + if(mutated || !iskidan(M)) + return ..() + + to_chat(M, "Mmm, tasty.") + nutriment_factor = 1 * REAGENTS_METABOLISM + mutated = TRUE + + return ..() diff --git a/code/modules/reagents/chemistry/reagents/drinks.dm b/code/modules/reagents/chemistry/reagents/drinks.dm index d11c50fc070..1f5ee19b29d 100644 --- a/code/modules/reagents/chemistry/reagents/drinks.dm +++ b/code/modules/reagents/chemistry/reagents/drinks.dm @@ -709,3 +709,31 @@ drink_name = "Arnold Palmer" drink_desc = "A wholesome mixture of lemonade and iced tea... looks like somebody didn't stir this one very well." taste_description = "sweet and fizzy" + +/datum/reagent/consumable/drink/fyrsskar_tears + name = "Tears of Fyrsskar" + id = "fyrsskartears" + description = "Plasmonic based drink that was consumed by ancient inhabitants of Skrellian homeworld." + color = "#C300AE" // rgb: 195, 0, 174 + drink_icon = "fyrsskartears" + drink_name = "Tears of Fyrsskar" + drink_desc = "Plasmonic based drink that was consumed by ancient inhabitants of Skrellian homeworld." + taste_description = "plasma" + var/alcohol_perc = 0.05 + var/dizzy_adj = 6 SECONDS + +/datum/reagent/consumable/drink/fyrsskar_tears/on_mob_add(mob/living/M) + if(isskrell(M)) + ADD_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE, id) + +/datum/reagent/consumable/drink/fyrsskar_tears/on_mob_life(mob/living/M) + if(!isskrell(M)) + return ..() + // imitate alcohol effects using current cycle + M.AdjustDrunk(alcohol_perc STATUS_EFFECT_CONSTANT) + M.AdjustDizzy(dizzy_adj, bound_upper = 1.5 MINUTES) + return ..() + +/datum/reagent/consumable/drink/fyrsskar_tears/on_mob_delete(mob/living/M) + if(isskrell(M)) + REMOVE_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE, id) diff --git a/code/modules/reagents/chemistry/recipes/drinks.dm b/code/modules/reagents/chemistry/recipes/drinks.dm index 1a13f186f3c..f30391c17ce 100644 --- a/code/modules/reagents/chemistry/recipes/drinks.dm +++ b/code/modules/reagents/chemistry/recipes/drinks.dm @@ -958,5 +958,100 @@ required_reagents = list("cream" = 1, "bilk" = 2, "ice" = 2) result_amount = 5 +/datum/chemical_reaction/sontse + name = "Sontse" + id = "sontse" + result = "sontse" + required_reagents = list("tequilasunrise" = 2, "flamingmoe" = 1) + result_amount = 3 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' +/datum/chemical_reaction/ahdomai_eclipse + name = "Ahdomai Eclipse" + id = "ahdomaieclipse" + result = "ahdomaieclipse" + required_reagents = list("antifreeze" = 1, "ice" = 5) + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + max_temp = T0C +/datum/chemical_reaction/beach_feast + name = "Feast by the Beach" + id = "beachfeast" + result = "beachfeast" + required_reagents = list("vodka" = 1, "limejuice" = 1, "grapejuice" = 1, "silicon" = 1) + result_amount = 4 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + min_temp = T0C + 100 + +/datum/chemical_reaction/fyrsskar_tears + name = "Tears of Fyrsskar" + id = "fyrsskartears" + result = "fyrsskartears" + required_reagents = list("plasma" = 1, "oxygen" = 1, "triple_citrus" = 1) + result_amount = 3 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/jungle_vox + name = "Jungle Vox" + id = "junglevox" + result = "junglevox" + required_reagents = list("rum" = 1, "limejuice" = 1, "sugar" = 1, "kahlua" = 1, "nitrogen" = 1) + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/die_seife + name = "Die Seife" + id = "dieseife" + result = "dieseife" + required_reagents = list("lye" = 1, "whiskey" = 1, "iced_beer" = 1) + result_amount = 3 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/slime_mold + name = "Slime Mold" + id = "slimemold" + result = "slimemold" + required_reagents = list("booger" = 2, "slimejelly" = 2, "egg" = 1) + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/acid_dreams + name = "Acid Dreams" + id = "aciddreams" + result = "aciddreams" + required_reagents = list("sacid" = 1, "gargleblaster" = 1, "sugar" = 1) + result_amount = 3 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/islay_whiskey + name = "Islay Whiskey" + id = "islaywhiskey" + result = "islaywhiskey" + required_reagents = list("eznutriment" = 1, "whiskey" = 1, "nutriment" = 1) + result_amount = 3 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/diona_smash + name = "Diona Smash" + id = "dionasmash" + result = "dionasmash" + required_reagents = list("nutriment" = 4, "sugar" = 1, "gin" = 1) + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/ultramatter + name = "Ultramatter" + id = "ultramatter" + result = "ultramatter" + required_reagents = list("singulo" = 5, "plasma_dust" = 1) + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + +/datum/chemical_reaction/howler + name = "Howler" + id = "howler" + result = "howler" + required_reagents = list("limejuice" = 1, "lemon_lime" = 1, "orangejuice" = 1, "tequila" = 2) + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index f719334eef2..96c9c2a2c87 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ