mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
Mental Medication Additions (#4648)
The less controversial tweaks Tweaked the metabolism rate of mental medication to reflect their intended values. Reduced the dosage threshold to suppress traumas to reflect their intended values. Syringe (drugs) now contains truth serum. Cardox is now slightly poisonous, and can directly remove phoron from blood when consumed. Cardox can now remove phoron in the air when applied to turfs. A secure box of loyalty implants, hextrasenil pills, and cardox grenades are now located in the vault. The vault now contains some misc emergency gear that a head of staff can access in case of a dire situation. Current gear are loyalty implants, expensive cardox grenades, and Hextrasenil pills.
This commit is contained in:
@@ -4,6 +4,7 @@ HEALTH ANALYZER
|
||||
GAS ANALYZER
|
||||
MASS SPECTROMETER
|
||||
REAGENT SCANNER
|
||||
BREATH ANALYZER
|
||||
*/
|
||||
|
||||
/obj/item/device/healthanalyzer
|
||||
@@ -19,8 +20,7 @@ REAGENT SCANNER
|
||||
throw_range = 10
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 200)
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 1)
|
||||
var/mode = 1;
|
||||
|
||||
var/mode = 1
|
||||
|
||||
/obj/item/device/healthanalyzer/attack(mob/living/M as mob, mob/living/user as mob)
|
||||
if ( ((CLUMSY in user.mutations) || (DUMB in user.mutations)) && prob(50))
|
||||
@@ -112,15 +112,6 @@ REAGENT SCANNER
|
||||
++unknown
|
||||
if(unknown)
|
||||
user << "<span class='warning'>Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach.</span>"
|
||||
if(C.breathing && C.breathing.total_volume)
|
||||
var/unknown = 0
|
||||
for(var/datum/reagent/R in C.breathing.reagent_list)
|
||||
if(R.scannable)
|
||||
user << "<span class='notice'>[R.name] found in subject's respitory system.</span>"
|
||||
else
|
||||
++unknown
|
||||
if(unknown)
|
||||
user << "<span class='warning'>Non-medical reagent[(unknown > 1)?"s":""] found in subject's respitory system.</span>"
|
||||
if(C.virus2.len)
|
||||
for (var/ID in C.virus2)
|
||||
if (ID in virusDB)
|
||||
@@ -402,4 +393,93 @@ REAGENT SCANNER
|
||||
|
||||
var/value = get_value(target)
|
||||
user.visible_message("\The [user] scans \the [target] with \the [src]")
|
||||
user.show_message("Price estimation of \the [target]: [value ? value : "N/A"] Credits")
|
||||
user.show_message("Price estimation of \the [target]: [value ? value : "N/A"] Credits")
|
||||
|
||||
|
||||
/obj/item/device/breath_analyzer
|
||||
name = "breath analyzer"
|
||||
desc = "A hand-held breath analyzer that provides a robust amount of information about the subject's repository system."
|
||||
icon_state = "breath_analyzer"
|
||||
item_state = "analyzer"
|
||||
w_class = 2.0
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 30,"glass" = 20)
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
|
||||
|
||||
/obj/item/device/breath_analyzer/attack(mob/living/carbon/human/H as mob, mob/living/user as mob)
|
||||
|
||||
if (!istype(H))
|
||||
to_chat(user,"<span class='warning'>You can't find a way to use the [src] on [H]!</span>")
|
||||
return
|
||||
|
||||
if ( ((CLUMSY in user.mutations) || (DUMB in user.mutations)) && prob(20))
|
||||
to_chat(user,"<span class='danger'>Your hand slips from clumsiness!</span>")
|
||||
eyestab(H,user)
|
||||
to_chat(user,"<span class='danger'>Alert: No breathing detected.</span>")
|
||||
return
|
||||
|
||||
if (!user.IsAdvancedToolUser())
|
||||
to_chat(user,"<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
return
|
||||
|
||||
if(user == H && !H.can_eat(src))
|
||||
return
|
||||
else if(!H.can_force_feed(user, src))
|
||||
return
|
||||
|
||||
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)
|
||||
user.do_attack_animation(H)
|
||||
|
||||
user.visible_message("<span class='notice'>[user] is trying to take a breath sample from [H].</span>","<span class='notice'>You gently insert the [src] into [H]'s mouth.</span>")
|
||||
|
||||
if (!LAZYLEN(src.other_DNA))
|
||||
LAZYADD(src.other_DNA, H.dna.unique_enzymes)
|
||||
src.other_DNA_type = "saliva"
|
||||
|
||||
if (!do_after(user, 2 SECONDS, act_target = H))
|
||||
to_chat(user,"<span class='notice'>You and the target need to be standing still in order to take a breath sample.</span>")
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] takes a breath sample from [H].</span>","<span class='notice'>The [src] clicks as it finishes reading [H]'s breath sample.</span>")
|
||||
|
||||
to_chat(user,"<b>Breath Sample Results:</b>")
|
||||
|
||||
if(H.stat == DEAD || H.losebreath || !H.breathing)
|
||||
to_chat(user,"<span class='danger'>Alert: No breathing detected.</span>")
|
||||
return
|
||||
|
||||
to_chat(user,H.getOxyLoss() > 50 ? "<font color='blue'><b>Severe oxygen deprivation detected.</b></font>" : "Subject oxygen levels normal.")
|
||||
var/obj/item/organ/L = H.internal_organs_by_name["lungs"]
|
||||
if(istype(L))
|
||||
to_chat(user,L.is_bruised() ? "<font color='red'><b>Ruptured lung detected.</b></font>" : "Subject lung health normal.")
|
||||
else
|
||||
to_chat(user,"<span class='warning'>Subject lung health unknown.</span>")
|
||||
|
||||
var/additional_string = "<font color='green'>\[NORMAL\]</font>"
|
||||
var/bac = H.get_blood_alcohol()
|
||||
switch(bac)
|
||||
if(INTOX_JUDGEIMP to INTOX_MUSCLEIMP)
|
||||
additional_string = "\[LIGHTLY INTOXICATED\]"
|
||||
if(INTOX_MUSCLEIMP to INTOX_VOMIT)
|
||||
additional_string = "\[MODERATELY INTOXICATED\]"
|
||||
if(INTOX_VOMIT to INTOX_BALANCE)
|
||||
additional_string = "<font color='red'>\[HEAVILY INTOXICATED\]</font>"
|
||||
if(INTOX_BALANCE to INTOX_DEATH)
|
||||
additional_string = "<font color='red'>\[ALCOHOL POISONING LIKELY\]</font>"
|
||||
if(INTOX_DEATH to INFINITY)
|
||||
additional_string = "<font color='red'>\[DEATH IMMINENT\]</font>"
|
||||
to_chat(user,"<span class='normal'>Blood Alcohol Content: [round(bac,0.01)] <b>[additional_string]</b></span>")
|
||||
|
||||
if(H.breathing && H.breathing.total_volume)
|
||||
var/unknown = 0
|
||||
for(var/datum/reagent/R in H.breathing.reagent_list)
|
||||
if(R.scannable)
|
||||
to_chat(user,"<span class='notice'>[R.name] found in subject's respitory system.</span>")
|
||||
else
|
||||
++unknown
|
||||
if(unknown)
|
||||
to_chat(user,"<span class='warning'>Non-medical reagent[(unknown > 1)?"s":""] found in subject's respitory system.</span>")
|
||||
|
||||
Reference in New Issue
Block a user