Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into abductor-update
This commit is contained in:
@@ -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 = "A�purple 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 w�nted 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
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
Reference in New Issue
Block a user