Merge branch 'master' into FermiChem

This commit is contained in:
Thalpy
2019-05-11 14:14:20 +01:00
committed by GitHub
486 changed files with 10019 additions and 1000259 deletions
@@ -49,14 +49,32 @@
"bromine",
"stable_plasma"
)
var/list/emagged_reagents = list(
"space_drugs",
"morphine",
"carpotoxin",
//these become available once upgraded.
var/list/upgrade_reagents = list(
"oil",
"ammonia"
)
var/list/upgrade_reagents2 = list(
"acetone",
"phenol",
"diethylamine"
)
var/list/upgrade_reagents3 = list(
"mine_salve",
"toxin"
)
var/list/emagged_reagents = list(
"space_drugs",
"plasma",
"frostoil",
"carpotoxin",
"histamine",
"morphine"
)
var/list/saved_recipes = list()
/obj/machinery/chem_dispenser/Initialize()
@@ -74,7 +92,17 @@
..()
if(panel_open)
to_chat(user, "<span class='notice'>[src]'s maintenance hatch is open!</span>")
if(in_range(user, src) || isobserver(user))
to_chat(user, "<span class='notice'>The status display reads: <br>Recharging <b>[recharge_amount]</b> power units per interval.<br>Power efficiency increased by <b>[(powerefficiency*1000)-100]%</b>.<span>")
switch(macrotier)
if(1)
to_chat(user, "<span class='notice'>Macro granularity at <b>5u</b>.<span>")
if(2)
to_chat(user, "<span class='notice'>Macro granularity at <b>3u</b>.<span>")
if(3)
to_chat(user, "<span class='notice'>Macro granularity at <b>2u</b>.<span>")
if(4)
to_chat(user, "<span class='notice'>Macro granularity at <b>1u</b>.<span>")
/obj/machinery/chem_dispenser/process()
if (recharge_counter >= 4)
if(!is_operational())
@@ -111,7 +139,6 @@
add_overlay(beaker_overlay)
/obj/machinery/chem_dispenser/emag_act(mob/user)
if(obj_flags & EMAGGED)
to_chat(user, "<span class='warning'>[src] has no functional safeties to emag.</span>")
@@ -346,6 +373,12 @@
for(var/obj/item/stock_parts/manipulator/M in component_parts)
if (M.rating > macrotier)
macrotier = M.rating
if (M.rating > 1)
dispensable_reagents |= upgrade_reagents
if (M.rating > 2)
dispensable_reagents |= upgrade_reagents2
if (M.rating > 3)
dispensable_reagents |= upgrade_reagents3
powerefficiency = round(newpowereff, 0.01)
@@ -447,14 +480,19 @@
"tomatojuice",
"lemonjuice",
"menthol"
)
) //prevents the soda machine from obtaining chemical upgrades. .
upgrade_reagents = null
upgrade_reagents2 = null
upgrade_reagents3 = null
emagged_reagents = list(
"thirteenloko",
"changelingsting",
"whiskeycola",
"mindbreaker",
"tirizene"
)
/obj/machinery/chem_dispenser/drinks/fullupgrade //fully ugpraded stock parts, emagged
desc = "Contains a large reservoir of soft drinks. This model has had its safeties shorted out."
obj_flags = CAN_BE_HIT | EMAGGED
@@ -497,13 +535,20 @@
"creme_de_cacao",
"triple_sec",
"sake"
)
)//prevents the booze machine from obtaining chemical upgrades.
upgrade_reagents = null
upgrade_reagents2 = null
upgrade_reagents3 = null
emagged_reagents = list(
"ethanol",
"iron",
"alexander",
"clownstears",
"minttoxin",
"atomicbomb",
"fernet"
"fernet",
"aphro",
"aphro+"
)
/obj/machinery/chem_dispenser/drinks/beer/fullupgrade //fully ugpraded stock parts, emagged
@@ -528,6 +573,7 @@
name = "mutagen dispenser"
desc = "Creates and dispenses mutagen."
dispensable_reagents = list("mutagen")
upgrade_reagents = null
emagged_reagents = list("plasma")
@@ -550,7 +596,11 @@
"ammonia",
"ash",
"diethylamine")
//same as above.
upgrade_reagents = null
upgrade_reagents2 = null
upgrade_reagents3 = null
/obj/machinery/chem_dispenser/mutagensaltpeter/Initialize()
. = ..()
component_parts = list()
@@ -1277,8 +1277,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
if(!M.has_trait(TRAIT_ALCOHOL_TOLERANCE))
M.confused = max(M.confused+2,0)
M.Dizzy(10)
if (!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
M.slurring += 3
switch(current_cycle)
if(51 to 200)
@@ -1306,8 +1305,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
M.dizziness +=1.5
switch(current_cycle)
if(15 to 45)
if(!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
M.slurring += 3
if(45 to 55)
if(prob(50))
@@ -1336,8 +1334,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
M.dizziness +=2
switch(current_cycle)
if(15 to 45)
if(!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
M.slurring += 3
if(45 to 55)
if(prob(50))
@@ -1364,8 +1361,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A drink enjoyed by people during the 1960's."
/datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M)
if (!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
switch(current_cycle)
if(1 to 5)
M.Dizzy(10)
@@ -745,3 +745,37 @@
taste_description = "sweet pomegranates"
glass_name = "glass of grenadine"
glass_desc = "Delicious flavored syrup."
/datum/reagent/consumable/pinkmilk
name = "Strawberry Milk"
id = "pinkmilk"
description = "A drink of a bygone era of milk and artificial sweetener back on a rock."
color = "#f76aeb"//rgb(247, 106, 235)
glass_icon_state = "pinkmilk"
quality = DRINK_FANTASTIC //Love drink
taste_description = "sweet strawberry and milk cream"
glass_name = "tall glass of strawberry milk"
glass_desc = "Delicious flavored strawberry syrup mixed with milk."
/datum/reagent/consumable/tea/pinkmilk/on_mob_life(mob/living/carbon/M)
if(prob(15))
to_chat(M, "<span class = 'notice'>[pick("You cant help to smile.","You feel nostalgia all of sudden.","You remember to relax.")]</span>")
..()
. = 1
/datum/reagent/consumable/pinktea //Tiny Tim song
name = "Strawberry Tea"
id = "pinktea"
description = "A timeless classic!"
color = "#f76aeb"//rgb(247, 106, 235)
glass_icon_state = "pinktea"
quality = DRINK_FANTASTIC //Love drink
taste_description = "sweet tea with a hint of strawberry"
glass_name = "mug of strawberry tea"
glass_desc = "Delicious traditional tea flavored with strawberries."
/datum/reagent/consumable/tea/pinktea/on_mob_life(mob/living/carbon/M)
if(prob(10))
to_chat(M, "<span class = '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.")]</span>")
..()
. = 1
@@ -402,8 +402,7 @@
taste_description = "mushroom"
/datum/reagent/mushroomhallucinogen/on_mob_life(mob/living/carbon/M)
if(!M.slurring)
M.slurring = 1
M.slurring = max(M.slurring,50)
switch(current_cycle)
if(1 to 5)
M.Dizzy(5)
@@ -466,6 +466,19 @@
M.radiation -= min(M.radiation, 8)
..()
/datum/reagent/medicine/prussian_blue
name = "Prussian Blue"
id = "prussian_blue"
description = "Efficiently restores heavy radiation damage."
reagent_state = LIQUID
color = "#003153" // RGB 0, 49, 83
metabolization_rate = 0.5 * REAGENTS_METABOLISM
/datum/reagent/medicine/prussian_blue/on_mob_life(mob/living/carbon/M)
if(M.radiation > 0)
M.radiation -= min(M.radiation, 20)
..()
/datum/reagent/medicine/pen_acid
name = "Pentetic Acid"
id = "pen_acid"
@@ -1863,8 +1863,26 @@
description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results."
color = "#FAEAFF"
taste_description = "synthetic catnip"
/datum/reagent/moonsugar/on_mob_life(mob/living/carbon/M)
if(prob(20))
to_chat(M, "You find yourself unable to supress the desire to meow!")
M.emote("nya")
/datum/reagent/penis_enlargement
name = "Penis Enlargement"
id = "penis_enlargement"
description = "A patented chemical forumula by Doctor Ronald Hyatt that is guaranteed to bring maximum GROWTH and LENGTH to your penis, today!"
color = "#888888"
taste_description = "chinese dragon powder"
metabolization_rate = INFINITY //So it instantly removes all of itself. Don't want to put strain on the system.
/datum/reagent/penis_enlargement/on_mob_life(mob/living/carbon/C)
var/obj/item/organ/genital/penis/P = C.getorganslot(ORGAN_SLOT_PENIS)
if(P)
var/added_length = round(volume/30,0.01) //Every 30u gives an extra inch. Rounded to the nearest 0.01 so float fuckery doesn't occur with the division by 30.
if(added_length >= 0.20) //Only add the length if it's greater than or equal to 0.2. This is to prevent people from smoking the reagents and causing the penis to update constantly.
P.length += added_length
P.update()
..()
@@ -759,6 +759,7 @@
taste_description = "skewing"
/datum/reagent/toxin/skewium/on_mob_life(mob/living/carbon/M)
/*
if(M.hud_used)
if(current_cycle >= 5 && current_cycle % 3 == 0)
var/list/screens = list(M.hud_used.plane_masters["[FLOOR_PLANE]"], M.hud_used.plane_masters["[GAME_PLANE]"], M.hud_used.plane_masters["[LIGHTING_PLANE]"])
@@ -774,6 +775,7 @@
for(var/whole_screen in screens)
animate(whole_screen, transform = newmatrix, time = 5, easing = QUAD_EASING, loop = -1)
animate(transform = -newmatrix, time = 5, easing = QUAD_EASING)
*/
return ..()
/datum/reagent/toxin/skewium/on_mob_delete(mob/living/M)
@@ -3,23 +3,25 @@
id = "reagent_explosion"
var/strengthdiv = 10
var/modifier = 0
var/noexplosion = FALSE
/datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume)
var/turf/T = get_turf(holder.my_atom)
var/inside_msg
if(ismob(holder.my_atom))
var/mob/M = holder.my_atom
inside_msg = " inside [ADMIN_LOOKUPFLW(M)]"
var/lastkey = holder.my_atom.fingerprintslast
var/touch_msg = "N/A"
if(lastkey)
var/mob/toucher = get_mob_by_key(lastkey)
touch_msg = "[ADMIN_LOOKUPFLW(toucher)]"
message_admins("Reagent explosion reaction occurred at [ADMIN_VERBOSEJMP(T)][inside_msg]. Last Fingerprint: [touch_msg].")
log_game("Reagent explosion reaction occurred at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"]." )
var/datum/effect_system/reagents_explosion/e = new()
e.set_up(modifier + round(created_volume/strengthdiv, 1), T, 0, 0)
e.start()
/datum/chemical_reaction/reagent_explosion/on_reaction(datum/reagents/holder, created_volume, turf/override)
if(!noexplosion)
var/turf/T = override || get_turf(holder.my_atom)
var/inside_msg
if(ismob(holder.my_atom))
var/mob/M = holder.my_atom
inside_msg = " inside [ADMIN_LOOKUPFLW(M)]"
var/lastkey = holder.my_atom.fingerprintslast
var/touch_msg = "N/A"
if(lastkey)
var/mob/toucher = get_mob_by_key(lastkey)
touch_msg = "[ADMIN_LOOKUPFLW(toucher)]"
message_admins("Reagent explosion reaction occurred at [ADMIN_VERBOSEJMP(T)][inside_msg]. Last Fingerprint: [touch_msg].")
log_game("Reagent explosion reaction occurred at [AREACOORD(T)]. Last Fingerprint: [lastkey ? lastkey : "N/A"]." )
var/datum/effect_system/reagents_explosion/e = new()
e.set_up(modifier + round(created_volume/strengthdiv, 1), T, 0, 0)
e.start()
holder.clear_reagents()
@@ -56,6 +58,7 @@
required_reagents = list("holywater" = 1, "potassium" = 1)
/datum/chemical_reaction/reagent_explosion/potassium_explosion/holyboom/on_reaction(datum/reagents/holder, created_volume)
var/turf/T = get_turf(holder.my_atom)
if(created_volume >= 150)
playsound(get_turf(holder.my_atom), 'sound/effects/pray.ogg', 80, 0, round(created_volume/48))
strengthdiv = 8
@@ -76,7 +79,7 @@
C.Knockdown(40)
C.adjust_fire_stacks(5)
C.IgniteMob()
..()
..(holder, created_volume, T)
/datum/chemical_reaction/blackpowder
@@ -95,8 +98,9 @@
mix_message = "<span class='boldannounce'>Sparks start flying around the black powder!</span>"
/datum/chemical_reaction/reagent_explosion/blackpowder_explosion/on_reaction(datum/reagents/holder, created_volume)
var/turf/T = get_turf(holder.my_atom)
sleep(rand(50,100))
..()
..(holder, created_volume, T)
/datum/chemical_reaction/thermite
name = "Thermite"
@@ -423,6 +427,7 @@
required_reagents = list("teslium" = 1, "water" = 1)
strengthdiv = 100
modifier = -100
noexplosion = TRUE
mix_message = "<span class='boldannounce'>The teslium starts to spark as electricity arcs away from it!</span>"
mix_sound = 'sound/machines/defib_zap.ogg'
var/tesla_flags = TESLA_MOB_DAMAGE | TESLA_OBJ_DAMAGE | TESLA_MOB_STUN