Adds Species Drinks (#18734)

* Merge

* linter be nice

* memes--

* removed force-says and force emotes

* changed Skrell drink

* modified Skrell drink

* review fixes

* changed grey drink

* fixed conditions

* fixed an oopsie

* more fixes

* facepalm
This commit is contained in:
Neth
2022-09-08 22:10:18 +01:00
committed by GitHub
parent f893e4c30b
commit c5b32512ab
5 changed files with 373 additions and 1 deletions
@@ -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, "<span class='warning'>The Sun was within you all this time!</span>")
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, "<span class='warning'>The Sun within you subsides.</span>")
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, "<span class='warning'>Your skin emits a soapy liquid from its pores cleaning you in the process.</span>")
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, "<span class='warning'>You feel that [M.name] is somewhere near.</span>")
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, "<span class='warning'>You expell flaming substance from within your suit.</span>")
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, "<span class='warning'>Mmm, tasty.</span>")
nutriment_factor = 1 * REAGENTS_METABOLISM
mutated = TRUE
return ..()
@@ -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)
@@ -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'