Drinking singulo ignores supermatter hallucinations and pulls nearby objects (#71927)

## About The Pull Request
Drinking a singulo will now:

- Give immunity to supermatter hallucinations
- Pulls objects to you based on the total volume in your system (20u =
1x1, 45u = 2x2, 80u = 3x3)
- Makes a burp and supermatter rays/sound when objects are pulled

The new ingredient is:

- Vokda 5u 
- Wine 5u
- Liquid Dark Matter 1u (replaces Radium)

## Why It's Good For The Game
More cool effects for drinks. Singularity is all about gravity and the
drink should have a theme around that.


![dreamseeker_2q21YXS698](https://user-images.githubusercontent.com/5195984/207297517-90d26395-dd30-4106-bdd4-b30b1ba3e20b.gif)

## Changelog
🆑
add: Drinking singulo will now ignore supermatter hallucinations and
pull objects to you
balance: Change singulo drink recipe to require liquid dark matter
instead of radium.
/🆑
This commit is contained in:
Tim
2022-12-15 06:48:20 +01:00
committed by GitHub
parent ad608c215c
commit a9fda932e2
2 changed files with 27 additions and 1 deletions
@@ -198,7 +198,7 @@
/datum/chemical_reaction/drink/singulo
results = list(/datum/reagent/consumable/ethanol/singulo = 10)
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/uranium/radium = 1, /datum/reagent/consumable/ethanol/wine = 5)
required_reagents = list(/datum/reagent/consumable/ethanol/vodka = 5, /datum/reagent/liquid_dark_matter = 1, /datum/reagent/consumable/ethanol/wine = 5)
/datum/chemical_reaction/drink/alliescocktail
results = list(/datum/reagent/consumable/ethanol/alliescocktail = 2)
@@ -1445,6 +1445,32 @@
quality = DRINK_VERYGOOD
taste_description = "concentrated matter"
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
var/static/list/ray_filter = list(type = "rays", size = 40, density = 15, color = SUPERMATTER_SINGULARITY_RAYS_COLOUR, factor = 15)
/datum/reagent/consumable/ethanol/singulo/on_mob_metabolize(mob/living/drinker)
ADD_TRAIT(drinker, TRAIT_MADNESS_IMMUNE, type)
/datum/reagent/consumable/ethanol/singulo/on_mob_end_metabolize(mob/living/drinker)
REMOVE_TRAIT(drinker, TRAIT_MADNESS_IMMUNE, type)
drinker.remove_filter("singulo_rays")
/datum/reagent/consumable/ethanol/singulo/on_mob_life(mob/living/carbon/drinker, delta_time, times_fired)
if(DT_PROB(2.5, delta_time))
// 20u = 1x1, 45u = 2x2, 80u = 3x3
var/volume_to_radius = FLOOR(sqrt(volume/5), 1) - 1
var/suck_range = clamp(volume_to_radius, 0, 3)
if(!suck_range)
return ..()
var/turf/gravity_well_turf = get_turf(drinker)
goonchem_vortex(gravity_well_turf, 0, suck_range)
playsound(get_turf(drinker), 'sound/effects/supermatter.ogg', 150, TRUE)
drinker.add_filter("singulo_rays", 1, ray_filter)
animate(drinker.get_filter("singulo_rays"), offset = 10, time = 1.5 SECONDS, loop = -1)
addtimer(CALLBACK(drinker, TYPE_PROC_REF(/atom/, remove_filter), "singulo_rays"), 1.5 SECONDS)
drinker.emote("burp")
return ..()
/datum/glass_style/drinking_glass/singulo
required_drink_type = /datum/reagent/consumable/ethanol/singulo