This commit is contained in:
Linzolle
2019-11-25 21:01:25 -06:00
654 changed files with 4610 additions and 2805 deletions
@@ -88,20 +88,21 @@
return ..()
/obj/machinery/chem_dispenser/examine(mob/user)
..()
. = ..()
if(panel_open)
to_chat(user, "<span class='notice'>[src]'s maintenance hatch is open!</span>")
. += "<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>")
. += "<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>")
. += "<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>")
. += "<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>")
. += "<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>")
. += "<span class='notice'>Macro granularity at <b>1u</b>.<span>"
/obj/machinery/chem_dispenser/process()
if (recharge_counter >= 4)
if(!is_operational())
@@ -382,9 +383,10 @@
/obj/machinery/chem_dispenser/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker)
if(beaker)
beaker.forceMove(drop_location())
var/obj/item/reagent_containers/B = beaker
B.forceMove(drop_location())
if(user && Adjacent(user) && !issiliconoradminghost(user))
user.put_in_hands(beaker)
user.put_in_hands(B)
if(new_beaker)
beaker = new_beaker
else
@@ -396,7 +398,6 @@
cell = null
if(beaker)
beaker.forceMove(drop_location())
beaker = null
return ..()
/obj/machinery/chem_dispenser/proc/get_macro_resolution()
@@ -191,27 +191,27 @@
/obj/machinery/reagentgrinder/examine(mob/user)
. = ..()
if(!in_range(user, src) && !issilicon(user) && !isobserver(user))
to_chat(user, "<span class='warning'>You're too far away to examine [src]'s contents and display!</span>")
. += "<span class='warning'>You're too far away to examine [src]'s contents and display!</span>"
return
if(operating)
to_chat(user, "<span class='warning'>\The [src] is operating.</span>")
. += "<span class='warning'>\The [src] is operating.</span>"
return
if(beaker || length(holdingitems))
to_chat(user, "<span class='notice'>\The [src] contains:</span>")
. += "<span class='notice'>\The [src] contains:</span>"
if(beaker)
to_chat(user, "<span class='notice'>- \A [beaker].</span>")
. += "<span class='notice'>- \A [beaker].</span>"
for(var/i in holdingitems)
var/obj/item/O = i
to_chat(user, "<span class='notice'>- \A [O.name].</span>")
. += "<span class='notice'>- \A [O.name].</span>"
if(!(stat & (NOPOWER|BROKEN)))
to_chat(user, "<span class='notice'>The status display reads:</span>")
to_chat(user, "<span class='notice'>- Grinding reagents at <b>[speed*100]%</b>.<span>")
. += "<span class='notice'>The status display reads:</span>"
. += "<span class='notice'>- Grinding reagents at <b>[speed*100]%</b>.<span>"
if(beaker)
for(var/datum/reagent/R in beaker.reagents.reagent_list)
to_chat(user, "<span class='notice'>- [R.volume] units of [R.name].</span>")
. += "<span class='notice'>- [R.volume] units of [R.name].</span>"
/obj/machinery/reagentgrinder/proc/eject(mob/user)
for(var/i in holdingitems)
@@ -1830,6 +1830,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
value = 2
/datum/reagent/consumable/ethanol/peppermint_patty/on_mob_life(mob/living/carbon/M)
M.apply_status_effect(/datum/status_effect/throat_soothed)
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
@@ -786,6 +786,10 @@
glass_name = "glass of menthol"
glass_desc = "Tastes naturally minty, and imparts a very mild numbing sensation."
/datum/reagent/consumable/menthol/on_mob_life(mob/living/L)
L.apply_status_effect(/datum/status_effect/throat_soothed)
..()
/datum/reagent/consumable/grenadine
name = "Grenadine"
id = "grenadine"
@@ -756,6 +756,30 @@
taste_description = "mournful honking"
pH = 9.2
/datum/reagent/consumable/liquidelectricity
name = "Liquid Electricity"
id = "liquidelectricity"
description = "The blood of Ethereals, and the stuff that keeps them going. Great for them, horrid for anyone else."
nutriment_factor = 5 * REAGENTS_METABOLISM
color = "#97ee63"
taste_description = "pure electricity"
/* //We don't have ethereals here, so I'll just comment it out.
/datum/reagent/consumable/liquidelectricity/reaction_mob(mob/living/M, method=TOUCH, reac_volume) //can't be on life because of the way blood works.
if((method == INGEST || method == INJECT || method == PATCH) && iscarbon(M))
var/mob/living/carbon/C = M
var/obj/item/organ/stomach/ethereal/stomach = C.getorganslot(ORGAN_SLOT_STOMACH)
if(istype(stomach))
stomach.adjust_charge(reac_volume * REM)
*/
/datum/reagent/consumable/liquidelectricity/on_mob_life(mob/living/carbon/M)
if(prob(25)) // && !isethereal(M))
M.electrocute_act(rand(10,15), "Liquid Electricity in their body", 1) //lmao at the newbs who eat energy bars
playsound(M, "sparks", 50, TRUE)
return ..()
/datum/reagent/consumable/astrotame
name = "Astrotame"
id = "astrotame"
@@ -1464,3 +1464,50 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M)
M.adjustToxLoss(1, 0)
..()
. = 1
/datum/reagent/medicine/silibinin
name = "Silibinin"
id = "silibinin"
description = "A thistle derrived hepatoprotective flavolignan mixture that help reverse damage to the liver."
reagent_state = SOLID
color = "#FFFFD0"
metabolization_rate = 1.5 * REAGENTS_METABOLISM
/datum/reagent/medicine/silibinin/on_mob_life(mob/living/carbon/M)
M.adjustOrganLoss(ORGAN_SLOT_LIVER, -2)//Add a chance to cure liver trauma once implemented.
..()
. = 1
/datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems.
name = "Polypyrylium Oligomers"
id = "polypyr"
description = "Apurple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals."
reagent_state = SOLID
color = "#9423FF"
metabolization_rate = 0.25 * REAGENTS_METABOLISM
overdose_threshold = 50
taste_description = "numbing bitterness"
/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I wnted a collection of small positive effects, this is as hard to obtain as coniine after all.
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25)
M.adjustBruteLoss(-0.35, 0)
if(prob(50))
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.bleed_rate = max(H.bleed_rate - 1, 0)
..()
. = 1
/datum/reagent/medicine/polypyr/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
if(M && ishuman(M) && reac_volume >= 0.5)
var/mob/living/carbon/human/H = M
H.hair_color = "92f"
H.facial_hair_color = "92f"
H.update_hair()
/datum/reagent/medicine/polypyr/overdose_process(mob/living/M)
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5)
..()
. = 1
@@ -515,6 +515,7 @@
///Stronger kind of lube. Applies TURF_WET_SUPERLUBE.
/datum/reagent/lube/superlube
name = "Super Duper Lube"
id = "superlube"
description = "This \[REDACTED\] has been outlawed after the incident on \[DATA EXPUNGED\]."
lube_kind = TURF_WET_SUPERLUBE
@@ -967,3 +967,23 @@
else
M.gain_trauma_type(BRAIN_TRAUMA_SPECIAL)
..()
/datum/reagent/toxin/bungotoxin
name = "Bungotoxin"
id = "bungotoxin"
description = "A horrible cardiotoxin that protects the humble bungo pit."
//silent_toxin = TRUE //I guess we don't really have the entire tox system ported.
color = "#EBFF8E"
metabolization_rate = 0.5 * REAGENTS_METABOLISM
toxpwr = 0
taste_description = "tannin"
/datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/M)
M.adjustOrganLoss(ORGAN_SLOT_HEART, 3)
M.confused = M.dizziness //add a tertiary effect here if this is isn't an effective poison.
if(current_cycle >= 12 && prob(8))
var/tox_message = pick("You feel your heart spasm in your chest.", "You feel faint.","You feel you need to catch your breath.","You feel a prickle of pain in your chest.")
to_chat(M, "<span class='notice'>[tox_message]</span>")
. = 1
..()
@@ -173,7 +173,7 @@ GLOBAL_LIST_INIT(food_reagents, build_reagents_to_food()) //reagentid = related
/obj/item/paper/secretrecipe/examine(mob/user) //Extra secret
if(isobserver(user))
return
return list()
. = ..()
/obj/item/paper/secretrecipe/Initialize()
@@ -124,9 +124,8 @@ Borg Hypospray
return
/obj/item/reagent_containers/borghypo/examine(mob/user)
usr = user
..()
DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
. = ..()
. += DescribeContents() //Because using the standardized reagents datum was just too cool for whatever fuckwit wrote this
/obj/item/reagent_containers/borghypo/proc/DescribeContents()
var/empty = 1
@@ -134,11 +133,11 @@ Borg Hypospray
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
to_chat(usr, "<span class='notice'>It currently has [R.volume] unit\s of [R.name] stored.</span>")
. += "<span class='notice'>It currently has [R.volume] unit\s of [R.name] stored.</span>"
empty = 0
if(empty)
to_chat(usr, "<span class='warning'>It is currently empty! Allow some time for the internal syntheszier to produce more.</span>")
. += "<span class='warning'>It is currently empty! Allow some time for the internal syntheszier to produce more.</span>"
/obj/item/reagent_containers/borghypo/hacked
icon_state = "borghypo_s"
@@ -121,11 +121,11 @@
icon_state = "[initial(icon_state)]0"
/obj/item/reagent_containers/hypospray/medipen/examine()
..()
. = ..()
if(reagents && reagents.reagent_list.len)
to_chat(usr, "<span class='notice'>It is currently loaded.</span>")
. += "<span class='notice'>It is currently loaded.</span>"
else
to_chat(usr, "<span class='notice'>It is spent.</span>")
. += "<span class='notice'>It is spent.</span>"
/obj/item/reagent_containers/hypospray/medipen/stimulants
name = "illegal stimpack medipen"
@@ -296,10 +296,10 @@
/obj/item/hypospray/mkii/examine(mob/user)
. = ..()
if(vial)
to_chat(user, "[vial] has [vial.reagents.total_volume]u remaining.")
. += "[vial] has [vial.reagents.total_volume]u remaining."
else
to_chat(user, "It has no vial loaded in.")
to_chat(user, "[src] is set to [mode ? "Inject" : "Spray"] contents on application.")
. += "It has no vial loaded in."
. += "[src] is set to [mode ? "Inject" : "Spray"] contents on application."
/obj/item/hypospray/mkii/proc/unload_hypo(obj/item/I, mob/user)
if((istype(I, /obj/item/reagent_containers/glass/bottle/vial)))
@@ -23,7 +23,7 @@
/obj/item/reagent_containers/rag/examine(mob/user)
. = ..()
if(reagents.total_volume)
to_chat(user, "<span class='notice'>Alt-Click to squeeze the liquids out of it.</span>")
. += "<span class='notice'>Alt-Click to squeeze the liquids out of it.</span>"
/obj/item/reagent_containers/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity)
. = ..()
@@ -230,7 +230,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "clownflower"
volume = 30
list_reagents = list(/datum/reagent/lube/superlube = 30)
list_reagents = list("superlube" = 30)
/obj/item/reagent_containers/spray/waterflower/cyborg
reagent_flags = NONE
+4 -4
View File
@@ -71,13 +71,13 @@
var/paper_cups = 25 //Paper cups left from the cooler
/obj/structure/reagent_dispensers/water_cooler/examine(mob/user)
..()
. = ..()
if (paper_cups > 1)
to_chat(user, "There are [paper_cups] paper cups left.")
. += "There are [paper_cups] paper cups left."
else if (paper_cups == 1)
to_chat(user, "There is one paper cup left.")
. += "There is one paper cup left."
else
to_chat(user, "There are no paper cups left.")
. += "There are no paper cups left."
/obj/structure/reagent_dispensers/water_cooler/attack_hand(mob/living/user)
. = ..()