mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Overdose changes + General chem mods
This commit is contained in:
@@ -610,4 +610,342 @@
|
||||
return
|
||||
|
||||
if(scanner)
|
||||
return scanner.tgui_interact(user)
|
||||
<<<<<<< HEAD
|
||||
return scanner.tgui_interact(user)
|
||||
=======
|
||||
return ui_interact(user)
|
||||
|
||||
/obj/machinery/body_scanconsole/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
|
||||
var/data[0]
|
||||
|
||||
data["connected"] = scanner ? 1 : 0
|
||||
|
||||
if(scanner)
|
||||
data["occupied"] = scanner.occupant ? 1 : 0
|
||||
|
||||
var/occupantData[0]
|
||||
if(scanner.occupant && ishuman(scanner.occupant))
|
||||
var/mob/living/carbon/human/H = scanner.occupant
|
||||
occupantData["name"] = H.name
|
||||
occupantData["stat"] = H.stat
|
||||
occupantData["health"] = H.health
|
||||
occupantData["maxHealth"] = H.getMaxHealth()
|
||||
|
||||
occupantData["hasVirus"] = H.virus2.len
|
||||
|
||||
occupantData["bruteLoss"] = H.getBruteLoss()
|
||||
occupantData["oxyLoss"] = H.getOxyLoss()
|
||||
occupantData["toxLoss"] = H.getToxLoss()
|
||||
occupantData["fireLoss"] = H.getFireLoss()
|
||||
|
||||
occupantData["radLoss"] = H.radiation
|
||||
occupantData["cloneLoss"] = H.getCloneLoss()
|
||||
occupantData["brainLoss"] = H.getBrainLoss()
|
||||
occupantData["paralysis"] = H.paralysis
|
||||
occupantData["paralysisSeconds"] = round(H.paralysis / 4)
|
||||
occupantData["bodyTempC"] = H.bodytemperature-T0C
|
||||
occupantData["bodyTempF"] = (((H.bodytemperature-T0C) * 1.8) + 32)
|
||||
|
||||
occupantData["hasBorer"] = H.has_brain_worms()
|
||||
|
||||
var/bloodData[0]
|
||||
if(H.vessel)
|
||||
var/blood_volume = round(H.vessel.get_reagent_amount("blood"))
|
||||
var/blood_max = H.species.blood_volume
|
||||
bloodData["volume"] = blood_volume
|
||||
bloodData["percent"] = round(((blood_volume / blood_max)*100))
|
||||
|
||||
occupantData["blood"] = bloodData
|
||||
|
||||
var/reagentData[0]
|
||||
if(H.reagents.reagent_list.len >= 1)
|
||||
for(var/datum/reagent/R in H.reagents.reagent_list)
|
||||
reagentData[++reagentData.len] = list("name" = R.name, "amount" = R.volume, "overdose" = ((R.overdose && R.volume > R.overdose) ? "Overdose" : ""))
|
||||
else
|
||||
reagentData = null
|
||||
|
||||
occupantData["reagents"] = reagentData
|
||||
|
||||
var/ingestedData[0]
|
||||
if(H.ingested.reagent_list.len >= 1)
|
||||
for(var/datum/reagent/R in H.ingested.reagent_list)
|
||||
ingestedData[++ingestedData.len] = list("name" = R.name, "amount" = R.volume, "overdose" = ((R.overdose && R.volume > R.overdose) ? "Overdose" : ""))
|
||||
else
|
||||
ingestedData = null
|
||||
|
||||
occupantData["ingested"] = ingestedData
|
||||
|
||||
var/extOrganData[0]
|
||||
for(var/obj/item/organ/external/E in H.organs)
|
||||
var/organData[0]
|
||||
organData["name"] = E.name
|
||||
organData["open"] = E.open
|
||||
organData["germ_level"] = E.germ_level
|
||||
organData["bruteLoss"] = E.brute_dam
|
||||
organData["fireLoss"] = E.burn_dam
|
||||
|
||||
var/implantData[0]
|
||||
for(var/obj/I in E.implants)
|
||||
var/implantSubData[0]
|
||||
implantSubData["name"] = I.name
|
||||
if(is_type_in_list(I, known_implants))
|
||||
implantSubData["known"] = 1
|
||||
|
||||
implantData.Add(list(implantSubData))
|
||||
|
||||
organData["implants"] = implantData
|
||||
organData["implants_len"] = implantData.len
|
||||
|
||||
var/organStatus[0]
|
||||
if(E.status & ORGAN_DESTROYED)
|
||||
organStatus["destroyed"] = 1
|
||||
if(E.status & ORGAN_BROKEN)
|
||||
organStatus["broken"] = E.broken_description
|
||||
if(E.robotic >= ORGAN_ROBOT)
|
||||
organStatus["robotic"] = 1
|
||||
if(E.splinted)
|
||||
organStatus["splinted"] = 1
|
||||
if(E.status & ORGAN_BLEEDING)
|
||||
organStatus["bleeding"] = 1
|
||||
if(E.status & ORGAN_DEAD)
|
||||
organStatus["dead"] = 1
|
||||
for(var/datum/wound/W in E.wounds)
|
||||
if(W.internal)
|
||||
organStatus["internalBleeding"] = 1
|
||||
break
|
||||
|
||||
organData["status"] = organStatus
|
||||
|
||||
if(istype(E, /obj/item/organ/external/chest) && H.is_lung_ruptured())
|
||||
organData["lungRuptured"] = 1
|
||||
|
||||
extOrganData.Add(list(organData))
|
||||
|
||||
occupantData["extOrgan"] = extOrganData
|
||||
|
||||
var/intOrganData[0]
|
||||
for(var/obj/item/organ/I in H.internal_organs)
|
||||
var/organData[0]
|
||||
organData["name"] = I.name
|
||||
if(I.status & ORGAN_ASSISTED)
|
||||
organData["desc"] = "Assisted"
|
||||
else if(I.robotic >= ORGAN_ROBOT)
|
||||
organData["desc"] = "Mechanical"
|
||||
else
|
||||
organData["desc"] = null
|
||||
organData["germ_level"] = I.germ_level
|
||||
organData["damage"] = I.damage
|
||||
|
||||
intOrganData.Add(list(organData))
|
||||
|
||||
occupantData["intOrgan"] = intOrganData
|
||||
|
||||
occupantData["blind"] = (H.sdisabilities & BLIND)
|
||||
occupantData["nearsighted"] = (H.disabilities & NEARSIGHTED)
|
||||
|
||||
data["occupant"] = occupantData
|
||||
|
||||
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "adv_med.tmpl", "Body Scanner", 690, 800)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
|
||||
|
||||
/obj/machinery/body_scanconsole/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if (href_list["print_p"])
|
||||
generate_printing_text()
|
||||
|
||||
if (!(printing) && printing_text)
|
||||
printing = 1
|
||||
visible_message("<span class='notice'>\The [src] rattles and prints out a sheet of paper.</span>")
|
||||
var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(loc)
|
||||
P.info = "<CENTER><B>Body Scan - [href_list["name"]]</B></CENTER><BR>"
|
||||
P.info += "<b>Time of scan:</b> [worldtime2stationtime(world.time)]<br><br>"
|
||||
P.info += "[printing_text]"
|
||||
P.info += "<br><br><b>Notes:</b><br>"
|
||||
P.name = "Body Scan - [href_list["name"]] ([worldtime2stationtime(world.time)])"
|
||||
printing = null
|
||||
printing_text = null
|
||||
|
||||
/obj/machinery/body_scanconsole/proc/generate_printing_text()
|
||||
var/dat = ""
|
||||
|
||||
if(scanner)
|
||||
var/mob/living/carbon/human/occupant = scanner.occupant
|
||||
dat = "<font color='blue'><b>Occupant Statistics:</b></font><br>" //Blah obvious
|
||||
if(istype(occupant)) //is there REALLY someone in there?
|
||||
var/t1
|
||||
switch(occupant.stat) // obvious, see what their status is
|
||||
if(0)
|
||||
t1 = "Conscious"
|
||||
if(1)
|
||||
t1 = "Unconscious"
|
||||
else
|
||||
t1 = "*dead*"
|
||||
dat += "<font color=[occupant.health > (occupant.getMaxHealth() / 2) ? "blue" : "red"]>\tHealth %: [(occupant.health / occupant.getMaxHealth())*100], ([t1])</font><br>"
|
||||
|
||||
if(occupant.virus2.len)
|
||||
dat += "<font color='red'>Viral pathogen detected in blood stream.</font><BR>"
|
||||
|
||||
var/extra_font = null
|
||||
extra_font = "<font color=[occupant.getBruteLoss() < 60 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\t-Brute Damage %: [occupant.getBruteLoss()]</font><br>"
|
||||
|
||||
extra_font = "<font color=[occupant.getOxyLoss() < 60 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\t-Respiratory Damage %: [occupant.getOxyLoss()]</font><br>"
|
||||
|
||||
extra_font = "<font color=[occupant.getToxLoss() < 60 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\t-Toxin Content %: [occupant.getToxLoss()]</font><br>"
|
||||
|
||||
extra_font = "<font color=[occupant.getFireLoss() < 60 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\t-Burn Severity %: [occupant.getFireLoss()]</font><br>"
|
||||
|
||||
extra_font = "<font color=[occupant.radiation < 10 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\tRadiation Level %: [occupant.radiation]</font><br>"
|
||||
|
||||
extra_font = "<font color=[occupant.getCloneLoss() < 1 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\tGenetic Tissue Damage %: [occupant.getCloneLoss()]</font><br>"
|
||||
|
||||
extra_font = "<font color=[occupant.getBrainLoss() < 1 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\tApprox. Brain Damage %: [occupant.getBrainLoss()]</font><br>"
|
||||
|
||||
dat += "Paralysis Summary %: [occupant.paralysis] ([round(occupant.paralysis / 4)] seconds left!)<br>"
|
||||
dat += "Body Temperature: [occupant.bodytemperature-T0C]°C ([occupant.bodytemperature*1.8-459.67]°F)<br>"
|
||||
|
||||
dat += "<hr>"
|
||||
|
||||
if(occupant.has_brain_worms())
|
||||
dat += "Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.<br>"
|
||||
|
||||
if(occupant.vessel)
|
||||
var/blood_volume = round(occupant.vessel.get_reagent_amount("blood"))
|
||||
var/blood_max = occupant.species.blood_volume
|
||||
var/blood_percent = blood_volume / blood_max
|
||||
blood_percent *= 100
|
||||
|
||||
extra_font = "<font color=[blood_volume > 448 ? "blue" : "red"]>"
|
||||
dat += "[extra_font]\tBlood Level %: [blood_percent] ([blood_volume] units)</font><br>"
|
||||
|
||||
if(occupant.reagents)
|
||||
for(var/datum/reagent/R in occupant.reagents.reagent_list)
|
||||
dat += "Reagent: [R.name], Amount: [R.volume]<br>"
|
||||
|
||||
if(occupant.ingested)
|
||||
for(var/datum/reagent/R in occupant.ingested.reagent_list)
|
||||
dat += "Stomach: [R.name], Amount: [R.volume]<br>"
|
||||
|
||||
dat += "<hr><table border='1'>"
|
||||
dat += "<tr>"
|
||||
dat += "<th>Organ</th>"
|
||||
dat += "<th>Burn Damage</th>"
|
||||
dat += "<th>Brute Damage</th>"
|
||||
dat += "<th>Other Wounds</th>"
|
||||
dat += "</tr>"
|
||||
|
||||
for(var/obj/item/organ/external/e in occupant.organs)
|
||||
dat += "<tr>"
|
||||
var/AN = ""
|
||||
var/open = ""
|
||||
var/infected = ""
|
||||
var/robot = ""
|
||||
var/imp = ""
|
||||
var/bled = ""
|
||||
var/splint = ""
|
||||
var/internal_bleeding = ""
|
||||
var/lung_ruptured = ""
|
||||
var/o_dead = ""
|
||||
for(var/datum/wound/W in e.wounds) if(W.internal)
|
||||
internal_bleeding = "<br>Internal bleeding"
|
||||
break
|
||||
if(istype(e, /obj/item/organ/external/chest) && occupant.is_lung_ruptured())
|
||||
lung_ruptured = "Lung ruptured:"
|
||||
if(e.splinted)
|
||||
splint = "Splinted:"
|
||||
if(e.status & ORGAN_BLEEDING)
|
||||
bled = "Bleeding:"
|
||||
if(e.status & ORGAN_BROKEN)
|
||||
AN = "[e.broken_description]:"
|
||||
if(e.robotic >= ORGAN_ROBOT)
|
||||
robot = "Prosthetic:"
|
||||
if(e.status & ORGAN_DEAD)
|
||||
o_dead = "Necrotic:"
|
||||
if(e.open)
|
||||
open = "Open:"
|
||||
switch (e.germ_level)
|
||||
if (INFECTION_LEVEL_ONE to INFECTION_LEVEL_ONE + 200)
|
||||
infected = "Mild Infection:"
|
||||
if (INFECTION_LEVEL_ONE + 200 to INFECTION_LEVEL_ONE + 300)
|
||||
infected = "Mild Infection+:"
|
||||
if (INFECTION_LEVEL_ONE + 300 to INFECTION_LEVEL_ONE + 400)
|
||||
infected = "Mild Infection++:"
|
||||
if (INFECTION_LEVEL_TWO to INFECTION_LEVEL_TWO + 200)
|
||||
infected = "Acute Infection:"
|
||||
if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300)
|
||||
infected = "Acute Infection+:"
|
||||
if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50)
|
||||
infected = "Acute Infection++:"
|
||||
if (INFECTION_LEVEL_THREE -49 to INFINITY)
|
||||
infected = "Gangrene Detected:"
|
||||
|
||||
var/unknown_body = 0
|
||||
for(var/I in e.implants)
|
||||
if(is_type_in_list(I,known_implants))
|
||||
imp += "[I] implanted:"
|
||||
else
|
||||
unknown_body++
|
||||
|
||||
if(unknown_body)
|
||||
imp += "Unknown body present:"
|
||||
if(!AN && !open && !infected & !imp)
|
||||
AN = "None:"
|
||||
if(!(e.status & ORGAN_DESTROYED))
|
||||
dat += "<td>[e.name]</td><td>[e.burn_dam]</td><td>[e.brute_dam]</td><td>[robot][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured][o_dead]</td>"
|
||||
else
|
||||
dat += "<td>[e.name]</td><td>-</td><td>-</td><td>Not Found</td>"
|
||||
dat += "</tr>"
|
||||
for(var/obj/item/organ/i in occupant.internal_organs)
|
||||
var/mech = ""
|
||||
var/i_dead = ""
|
||||
if(i.status & ORGAN_ASSISTED)
|
||||
mech = "Assisted:"
|
||||
if(i.robotic >= ORGAN_ROBOT)
|
||||
mech = "Mechanical:"
|
||||
if(i.status & ORGAN_DEAD)
|
||||
i_dead = "Necrotic:"
|
||||
var/infection = "None"
|
||||
switch (i.germ_level)
|
||||
if (INFECTION_LEVEL_ONE to INFECTION_LEVEL_ONE + 200)
|
||||
infection = "Mild Infection:"
|
||||
if (INFECTION_LEVEL_ONE + 200 to INFECTION_LEVEL_ONE + 300)
|
||||
infection = "Mild Infection+:"
|
||||
if (INFECTION_LEVEL_ONE + 300 to INFECTION_LEVEL_ONE + 400)
|
||||
infection = "Mild Infection++:"
|
||||
if (INFECTION_LEVEL_TWO to INFECTION_LEVEL_TWO + 200)
|
||||
infection = "Acute Infection:"
|
||||
if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300)
|
||||
infection = "Acute Infection+:"
|
||||
if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50)
|
||||
infection = "Acute Infection++:"
|
||||
if (INFECTION_LEVEL_THREE -49 to INFINITY)
|
||||
infection = "Necrosis Detected:"
|
||||
|
||||
dat += "<tr>"
|
||||
dat += "<td>[i.name]</td><td>N/A</td><td>[i.damage]</td><td>[infection]:[mech][i_dead]</td><td></td>"
|
||||
dat += "</tr>"
|
||||
dat += "</table>"
|
||||
if(occupant.sdisabilities & BLIND)
|
||||
dat += "<font color='red'>Cataracts detected.</font><BR>"
|
||||
if(occupant.disabilities & NEARSIGHTED)
|
||||
dat += "<font color='red'>Retinal misalignment detected.</font><BR>"
|
||||
else
|
||||
dat += "\The [src] is empty."
|
||||
else
|
||||
dat = "<font color='red'> Error: No Body Scanner connected.</font>"
|
||||
|
||||
printing_text = dat
|
||||
>>>>>>> c820021... Merge pull request #7361 from ExabyteDiscord/Upstream-Dog-ChemistryThing
|
||||
|
||||
@@ -136,10 +136,10 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
for(var/A in C.reagents.reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
if(R.scannable)
|
||||
reagentdata["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name]</span><br>"
|
||||
reagentdata["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
else
|
||||
unknown++
|
||||
unknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name]</span><br>"
|
||||
unknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
if(reagentdata.len)
|
||||
dat += "<span class='notice'>Beneficial reagents detected in subject's blood:</span><br>"
|
||||
for(var/d in reagentdata)
|
||||
@@ -156,14 +156,14 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
var/stomachreagentdata[0]
|
||||
var/stomachunknownreagents[0]
|
||||
for(var/B in C.ingested.reagent_list)
|
||||
var/datum/reagent/T = B
|
||||
if(T.scannable)
|
||||
stomachreagentdata["[T.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]</span><br>"
|
||||
var/datum/reagent/R = B
|
||||
if(R.scannable)
|
||||
stomachreagentdata["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
if (advscan == 0 || showadvscan == 0)
|
||||
dat += "<span class='notice'>[T.name] found in subject's stomach.</span><br>"
|
||||
dat += "<span class='notice'>[R.name] found in subject's stomach.</span><br>"
|
||||
else
|
||||
++unknown
|
||||
stomachunknownreagents["[T.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]</span><br>"
|
||||
stomachunknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
if(advscan >= 1 && showadvscan == 1)
|
||||
dat += "<span class='notice'>Beneficial reagents detected in subject's stomach:</span><br>"
|
||||
for(var/d in stomachreagentdata)
|
||||
@@ -180,14 +180,14 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
var/touchreagentdata[0]
|
||||
var/touchunknownreagents[0]
|
||||
for(var/B in C.touching.reagent_list)
|
||||
var/datum/reagent/T = B
|
||||
if(T.scannable)
|
||||
touchreagentdata["[T.id]"] = "<span class='notice'>\t[round(C.touching.get_reagent_amount(T.id), 1)]u [T.name]</span><br>"
|
||||
var/datum/reagent/R = B
|
||||
if(R.scannable)
|
||||
touchreagentdata["[R.id]"] = "<span class='notice'>\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
if (advscan == 0 || showadvscan == 0)
|
||||
dat += "<span class='notice'>[T.name] found in subject's dermis.</span><br>"
|
||||
dat += "<span class='notice'>[R.name] found in subject's dermis.</span><br>"
|
||||
else
|
||||
++unknown
|
||||
touchunknownreagents["[T.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(T.id), 1)]u [T.name]</span><br>"
|
||||
touchunknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
if(advscan >= 1 && showadvscan == 1)
|
||||
dat += "<span class='notice'>Beneficial reagents detected in subject's dermis:</span><br>"
|
||||
for(var/d in touchreagentdata)
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
var/dose = 0
|
||||
var/max_dose = 0
|
||||
var/overdose = 0 //Amount at which overdose starts
|
||||
var/overdose_mod = 2 //Modifier to overdose damage
|
||||
var/overdose_mod = 1 //Modifier to overdose damage
|
||||
var/can_overdose_touch = FALSE // Can the chemical OD when processing on touch?
|
||||
var/scannable = 0 // Shows up on health analyzers.
|
||||
var/affects_dead = 0
|
||||
@@ -146,7 +146,10 @@
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
overdose_mod *= H.species.chemOD_mod
|
||||
M.adjustToxLoss(removed * overdose_mod)
|
||||
// 6 damage per unit at minimum, scales with excessive reagents. Rounding should help keep damage consistent between ingest / inject, but isn't perfect.
|
||||
// Hardcapped at 3.6 damage per tick, or 18 damage per unit at 0.2 metabolic rate so that you can't instakill people with overdoses by feeding them infinite periadaxon.
|
||||
// Overall, max damage is slightly less effective than hydrophoron, and 1/5 as effective as cyanide.
|
||||
M.adjustToxLoss(min(removed * overdose_mod * round(3 + 3 * volume / overdose), 3.6))
|
||||
|
||||
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
|
||||
if(!isnull(newdata))
|
||||
|
||||
@@ -180,7 +180,21 @@
|
||||
L.ExtinguishMob()
|
||||
L.water_act(amount / 25) // Div by 25, as water_act multiplies it by 5 in order to calculate firestack modification.
|
||||
remove_self(needed)
|
||||
<<<<<<< HEAD
|
||||
/* //VOREStation Edit Start. Stops slimes from dying from water. Fixes fuel affect_ingest, too.
|
||||
=======
|
||||
|
||||
// Put out cigarettes if splashed.
|
||||
if(istype(L, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.wear_mask)
|
||||
if(istype(H.wear_mask, /obj/item/clothing/mask/smokable))
|
||||
var/obj/item/clothing/mask/smokable/S = H.wear_mask
|
||||
if(S.lit)
|
||||
S.quench()
|
||||
H.visible_message("<span class='notice'>[H]\'s [S.name] is put out.</span>")
|
||||
|
||||
>>>>>>> c820021... Merge pull request #7361 from ExabyteDiscord/Upstream-Dog-ChemistryThing
|
||||
/datum/reagent/water/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_SLIME)
|
||||
M.adjustToxLoss(6 * removed)
|
||||
|
||||
@@ -260,7 +260,7 @@
|
||||
step(M, pick(cardinal))
|
||||
if(prob(5))
|
||||
M.emote(pick("twitch", "drool", "moan"))
|
||||
M.adjustBrainLoss(0.1)
|
||||
M.adjustBrainLoss(0.5 * removed)
|
||||
|
||||
/datum/reagent/nitrogen
|
||||
name = "Nitrogen"
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#BF0000"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 0.25
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/bicaridine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -214,6 +215,8 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#225722"
|
||||
scannable = 1
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 0 // Not used, but it shouldn't deal toxin damage anyways. Carth heals toxins!
|
||||
|
||||
/datum/reagent/carthatoline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
@@ -234,6 +237,11 @@
|
||||
if(alien == IS_SLIME)
|
||||
H.druggy = max(M.druggy, 5)
|
||||
|
||||
/datum/reagent/carthatoline/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.adjustHalLoss(2)
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.internal_organs_by_name[O_STOMACH].take_damage(removed * 2) // Causes stomach contractions, makes sense for an overdose to make it much worse.
|
||||
|
||||
/datum/reagent/dexalin
|
||||
name = "Dexalin"
|
||||
id = "dexalin"
|
||||
@@ -267,6 +275,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#0040FF"
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 1.25
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/dexalinp/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -434,7 +443,8 @@
|
||||
taste_description = "bitterness"
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC"
|
||||
overdose = 60
|
||||
overdose = REAGENTS_OVERDOSE * 2
|
||||
overdose_mod = 0.75
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
@@ -458,7 +468,8 @@
|
||||
taste_description = "sourness"
|
||||
reagent_state = LIQUID
|
||||
color = "#CB68FC"
|
||||
overdose = 30
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 0.75
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
@@ -482,6 +493,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#800080"
|
||||
overdose = 20
|
||||
overdose_mod = 0.75
|
||||
scannable = 1
|
||||
metabolism = 0.02
|
||||
mrate_static = TRUE
|
||||
@@ -529,7 +541,7 @@
|
||||
M.AdjustWeakened(-1)
|
||||
holder.remove_reagent("mindbreaker", 5)
|
||||
M.hallucination = max(0, M.hallucination - 10)
|
||||
M.adjustToxLoss(5 * removed * chem_effective) // It used to be incredibly deadly due to an oversight. Not anymore!
|
||||
M.adjustToxLoss(10 * removed * chem_effective) // It used to be incredibly deadly due to an oversight. Not anymore!
|
||||
M.add_chemical_effect(CE_PAINKILLER, 20 * chem_effective * M.species.chem_strength_pain)
|
||||
|
||||
/datum/reagent/hyperzine
|
||||
@@ -540,6 +552,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#FF3300"
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 0.25
|
||||
|
||||
/datum/reagent/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_TAJARA)
|
||||
@@ -553,6 +566,13 @@
|
||||
M.emote(pick("twitch", "blink_r", "shiver"))
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
|
||||
/datum/reagent/hyperzine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(prob(5)) // 1 in 20
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.internal_organs_by_name[O_HEART].take_damage(1)
|
||||
to_chat(M, "<span class='warning'>Huh... Is this what a heart attack feels like?</span>")
|
||||
|
||||
/datum/reagent/alkysine
|
||||
name = "Alkysine"
|
||||
id = "alkysine"
|
||||
@@ -609,6 +629,7 @@
|
||||
reagent_state = LIQUID
|
||||
color = "#561EC3"
|
||||
overdose = 10
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/peridaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -628,6 +649,11 @@
|
||||
if(prob(33))
|
||||
H.Confuse(10)
|
||||
|
||||
/datum/reagent/peridaxon/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.adjustHalLoss(5)
|
||||
M.hallucination = max(M.hallucination, 10)
|
||||
|
||||
/datum/reagent/osteodaxon
|
||||
name = "Osteodaxon"
|
||||
id = "osteodaxon"
|
||||
@@ -636,6 +662,7 @@
|
||||
color = "#C9BCE3"
|
||||
metabolism = REM * 0.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/osteodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -658,6 +685,7 @@
|
||||
color = "#4246C7"
|
||||
metabolism = REM * 0.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
var/repair_strength = 3
|
||||
|
||||
@@ -679,6 +707,23 @@
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
|
||||
/datum/reagent/myelamine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
// Copypaste of affect_blood with slight adjustment. Heals slightly faster at the cost of high toxins
|
||||
..()
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/wound_heal = removed * repair_strength / 2
|
||||
for(var/obj/item/organ/external/O in H.bad_external_organs)
|
||||
for(var/datum/wound/W in O.wounds)
|
||||
if(W.bleeding())
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
if(W.internal)
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
|
||||
/datum/reagent/respirodaxon
|
||||
name = "Respirodaxon"
|
||||
id = "respirodaxon"
|
||||
@@ -688,6 +733,7 @@
|
||||
color = "#4444FF"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/respirodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -719,6 +765,7 @@
|
||||
color = "#8B4513"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/gastirodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -750,6 +797,7 @@
|
||||
color = "#D2691E"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/hepanephrodaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -783,6 +831,7 @@
|
||||
color = "#FF4444"
|
||||
metabolism = REM * 1.5
|
||||
overdose = 10
|
||||
overdose_mod = 1.75
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/cordradaxon/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -810,6 +859,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#7B4D4F"
|
||||
overdose = 20
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/immunosuprizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -867,6 +917,7 @@
|
||||
color = "#84B2B0"
|
||||
metabolism = REM * 0.75
|
||||
overdose = 20
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/skrellimmuno/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -1008,6 +1059,7 @@
|
||||
color = "#008000"
|
||||
metabolism = REM * 0.25
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 1.25
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/arithrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -1056,6 +1108,7 @@
|
||||
color = "#FFB0B0"
|
||||
mrate_static = TRUE
|
||||
overdose = 10
|
||||
overdose_mod = 1.5
|
||||
scannable = 1
|
||||
data = 0
|
||||
|
||||
@@ -1237,6 +1290,7 @@
|
||||
reagent_state = SOLID
|
||||
color = "#669900"
|
||||
overdose = REAGENTS_OVERDOSE
|
||||
overdose_mod = 2
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/rezadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
|
||||
@@ -423,6 +423,16 @@
|
||||
if(prob(5))
|
||||
M.vomit()
|
||||
|
||||
/datum/reagent/space_cleaner/touch_mob(var/mob/living/L, var/amount)
|
||||
if(istype(L, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(H.wear_mask)
|
||||
if(istype(H.wear_mask, /obj/item/clothing/mask/smokable))
|
||||
var/obj/item/clothing/mask/smokable/S = H.wear_mask
|
||||
if(S.lit)
|
||||
S.quench() // No smoking in my medbay!
|
||||
H.visible_message("<span class='notice'>[H]\'s [S.name] is put out.</span>")
|
||||
|
||||
/datum/reagent/lube // TODO: spraying on borgs speeds them up
|
||||
name = "Space Lube"
|
||||
id = "lube"
|
||||
|
||||
@@ -46,6 +46,11 @@
|
||||
color = "#792300"
|
||||
strength = 10
|
||||
|
||||
/datum/reagent/toxin/amatoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
// Trojan horse. Waits until most of the toxin has gone through the body before dealing the bulk of it in one big strike.
|
||||
if(volume < max_dose * 0.2)
|
||||
M.adjustToxLoss(max_dose * strength * removed / (max_dose * 0.2))
|
||||
|
||||
/datum/reagent/toxin/carpotoxin
|
||||
name = "Carpotoxin"
|
||||
id = "carpotoxin"
|
||||
@@ -55,6 +60,10 @@
|
||||
color = "#003333"
|
||||
strength = 10
|
||||
|
||||
/datum/reagent/toxin/carpotoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.adjustBrainLoss(strength / 4 * removed)
|
||||
|
||||
/datum/reagent/toxin/neurotoxic_protein
|
||||
name = "toxic protein"
|
||||
id = "neurotoxic_protein"
|
||||
@@ -212,6 +221,7 @@
|
||||
color = "#d0583a"
|
||||
metabolism = REM * 3
|
||||
overdose = 10
|
||||
overdose_mod = 0.5
|
||||
strength = 3
|
||||
|
||||
/datum/reagent/toxin/stimm/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
@@ -225,6 +235,13 @@
|
||||
M.take_organ_damage(6 * removed, 0)
|
||||
M.add_chemical_effect(CE_SPEEDBOOST, 1)
|
||||
|
||||
/datum/reagent/toxin/stimm/overdose(var/mob/living/carbon/M, var/alient, var/removed)
|
||||
..()
|
||||
if(prob(10)) // 1 in 10. This thing's made with welder fuel and fertilizer, what do you expect?
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.internal_organs_by_name[O_HEART].take_damage(1)
|
||||
to_chat(M, "<span class='warning'>Huh... Is this what a heart attack feels like?</span>")
|
||||
|
||||
/datum/reagent/toxin/potassium_chloride
|
||||
name = "Potassium Chloride"
|
||||
id = "potassium_chloride"
|
||||
@@ -658,7 +675,7 @@
|
||||
metabolism = REM * 0.5
|
||||
ingest_met = REM * 1.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 5 //For that good, lethal feeling
|
||||
overdose_mod = 2 //For that good, lethal feeling // Reduced with overdose changes. Slightly stronger than before
|
||||
|
||||
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
|
||||
267
nano/templates/adv_med.tmpl
Normal file
267
nano/templates/adv_med.tmpl
Normal file
@@ -0,0 +1,267 @@
|
||||
<!--
|
||||
Title: Body Scanner UI
|
||||
Used In File(s): \code\game\machinery\adv_med.dm
|
||||
-->
|
||||
{{if !data.occupied}}
|
||||
<h3>No occupant detected.</h3>
|
||||
{{else}}
|
||||
<h4><b>Occupant Data:</b></h4>
|
||||
<div class="item">
|
||||
<div class="itemLabelNarrow">
|
||||
Name:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{:data.occupant.name}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="itemLabelNarrow">
|
||||
Health:
|
||||
</div>
|
||||
{{:helper.displayBar(data.occupant.health, 0, data.occupant.maxHealth, (data.occupant.health >= 50) ? 'good' : (data.occupant.health >= 25) ? 'average' : 'bad')}}
|
||||
<div class="itemContent" style="width: 60px">
|
||||
{{:helper.round(data.occupant.health / data.occupant.maxHealth)*100}}%
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="itemLabelNarrow">
|
||||
Status:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{if data.occupant.stat==0}}
|
||||
Stable
|
||||
{{else data.occupant.stat==1}}
|
||||
Non-Responsive
|
||||
{{else}}
|
||||
Dead
|
||||
{{/if}}
|
||||
</div>
|
||||
</div>
|
||||
{{:helper.link('Print', 'document', {'print_p' : 1, 'name' : data.occupant.name})}}
|
||||
<h4><b>Damage:</b></h4>
|
||||
<table class='item'>
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 10%;'>Brute:</td>
|
||||
<td class='itemContent brute' style='width: 10%;'>{{:data.occupant.bruteLoss}}</td>
|
||||
<td class='itemLabel' style='width: 15%;'>Brain:</td>
|
||||
<td class='itemContent' style='width: 15%;'>{{:data.occupant.brainLoss}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 10%;'>Burn:</td>
|
||||
<td class='itemContent burn' style='width: 10%;'>{{:data.occupant.fireLoss}}</td>
|
||||
<td class='itemLabel' style='width: 15%;'>Radiation:</td>
|
||||
<td class='itemContent' style='width: 15%;'>{{:data.occupant.radLoss}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 10%;'>Oxygen:</td>
|
||||
<td class='itemContent oxyloss' style='width: 10%;'>{{:data.occupant.oxyLoss}}</td>
|
||||
<td class='itemLabel' style='width: 15%;'>Genetic:</td>
|
||||
<td class='itemContent' style='width: 15%;'>{{:data.occupant.cloneLoss}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 10%;'>Toxins:</td>
|
||||
<td class='itemContent toxin' style='width: 10%;'>{{:data.occupant.toxLoss}}</td>
|
||||
<td class='itemLabel' style='width: 15%;'>Paralysis:</td>
|
||||
<td class='itemContent' style='width: 20%;'>{{:data.occupant.paralysis}}% ({{:data.occupant.paralysisSeconds}} seconds left!)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='itemLabelNarrow'>Body Temperature:</td>
|
||||
<td class="itemContentMedium">{{:helper.round(data.occupant.bodyTempC*10)/10}}°C, {{:helper.round(data.occupant.bodyTempF*10)/10}}°F</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
{{if data.occupant.hasVirus}}
|
||||
<div class="notice">
|
||||
Viral pathogen detected in blood stream.
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if data.occupant.hasBorer}}
|
||||
<div class="notice">
|
||||
Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended.
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if data.occupant.blind}}
|
||||
<div class="item bad">Pupils unresponsive.</div>
|
||||
{{/if}}
|
||||
{{if data.occupant.nearsighted}}
|
||||
<div class="item bad">Retinal Misalignment Detected</div>
|
||||
{{/if}}
|
||||
<h4><b>Blood</b></h4>
|
||||
<table class="item">
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 10%;'>Volume:</td>
|
||||
<td class='itemContent' style='width: 10%;'>{{:data.occupant.blood.volume}}</td>
|
||||
<td class='itemLabel' style='width: 10%;'>Percent:</td>
|
||||
<td class='itemContent' style='width: 10%;'>{{:data.occupant.blood.percent}}%</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h4>Blood Reagents</h4>
|
||||
{{if data.occupant.reagents}}
|
||||
<table class='item'>
|
||||
{{for data.occupant.reagents}}
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 20%;'>{{:value.name}}:</td>
|
||||
<td class='itemContent' style='width: 10%;'>{{:value.amount}}</td>
|
||||
<td class='itemContent brute' style='width: 10%;'>{{:value.overdose}}</td>
|
||||
</tr>
|
||||
{{/for}}
|
||||
</table>
|
||||
{{else}}
|
||||
<div class='item'>No blood reagents detected.</div>
|
||||
{{/if}}
|
||||
<h4>Stomach Reagents</h4>
|
||||
{{if data.occupant.ingested}}
|
||||
<table class='item'>
|
||||
{{for data.occupant.ingested}}
|
||||
<tr>
|
||||
<td class='itemLabel' style='width: 20%;'>{{:value.name}}:</td>
|
||||
<td class='itemContent' style='width: 10%;'>{{:value.amount}}</td>
|
||||
<td class='itemContent brute' style='width: 10%;'>{{:value.overdose}}</td>
|
||||
</tr>
|
||||
{{/for}}
|
||||
</table>
|
||||
{{else}}
|
||||
<div class='item'>No stomach reagents detected.</div>
|
||||
{{/if}}
|
||||
<h4><b>External Organs</b></h4>
|
||||
<div class="itemGroup">
|
||||
{{for data.occupant.extOrgan}}
|
||||
<div class="item">
|
||||
{{if value.status.destroyed}}
|
||||
<div class="itemLabelWide">
|
||||
<b>{{:value.name}}</b><span class="bad"> - DESTROYED</span>
|
||||
</div>
|
||||
{{else}}
|
||||
<div class="item">
|
||||
<div class="itemLabel">
|
||||
<b>{{:value.name}}</b>
|
||||
</div>
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
{{if value.status.broken}}
|
||||
{{:value.status.broken}}
|
||||
{{else value.status.splinted}}
|
||||
Splinted
|
||||
{{else value.status.robotic}}
|
||||
Robotic
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="itemLabelWide">
|
||||
Brute/Burn
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
{{:value.bruteLoss}}/{{:value.fireLoss}}
|
||||
</div>
|
||||
<div class="itemLabelWide">
|
||||
Injuries
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
{{if !value.status.bleeding}}
|
||||
{{if !value.status.internalBleeding}}
|
||||
No Injuries Detected
|
||||
{{else}}
|
||||
<span class="bad">Internal Bleeding Detected</span>
|
||||
{{/if}}
|
||||
{{else}}
|
||||
{{if value.status.internalBleeding}}
|
||||
<div class='notice'>Internal Bleeding Detected. External Bleeding Detected.</div>
|
||||
{{else}}
|
||||
<span class="average">External Bleeding Detected</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{if value.germ_level > 100}}
|
||||
<div class="itemLabelWide">
|
||||
Infection
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
{{if value.germ_level < 300}}
|
||||
Mild Infection
|
||||
{{else value.germ_level < 400}}
|
||||
Mild Infection+
|
||||
{{else value.germ_level < 500}}
|
||||
Mild Infection++
|
||||
{{else value.germ_level < 700}}
|
||||
Acute Infection
|
||||
{{else value.germ_level < 800}}
|
||||
Acute Infection+
|
||||
{{else value.germ_level < 950}}
|
||||
Acute Infection++
|
||||
{{else value.germ_level >= 950}}
|
||||
Gangrene Detected
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if value.status.dead}}
|
||||
<div class="itemLabelWide">
|
||||
Necrosis
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
Necrotic Tissue Present
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if value.open}}
|
||||
<div class="itemLabelWider">
|
||||
Operation Status
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
Open Incision
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if value.implants_len}}
|
||||
<div class="itemLabelWide">
|
||||
Implants
|
||||
</div>
|
||||
{{for value.implants :impValue:impindex}}
|
||||
<div class="itemContentNarrow">
|
||||
{{:impValue.known ? impValue.name : "Unknown"}}
|
||||
</div>
|
||||
{{/for}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/for}}
|
||||
</div>
|
||||
<h4><b>Internal Organs</b></h4>
|
||||
<div class="itemGroup">
|
||||
{{for data.occupant.intOrgan}}
|
||||
<div class="item">
|
||||
<div class="itemLabelWide">
|
||||
<b>{{:value.name}}</b>
|
||||
</div>
|
||||
<div class='itemContentNarrow'>
|
||||
{{:value.desc != null ? value.desc : ""}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
{{if value.germ_level > 100}}
|
||||
<div class="itemLabel">
|
||||
Infection
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
{{if value.germ_level < 300}}
|
||||
Mild Infection
|
||||
{{else value.germ_level < 400}}
|
||||
Mild Infection+
|
||||
{{else value.germ_level < 500}}
|
||||
Mild Infection++
|
||||
{{else value.germ_level < 700}}
|
||||
Acute Infection
|
||||
{{else value.germ_level < 800}}
|
||||
Acute Infection+
|
||||
{{else value.germ_level < 950}}
|
||||
Acute Infection++
|
||||
{{else value.germ_level >= 950}}
|
||||
Necrosis Detected
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<div class="itemLabelWide">
|
||||
Damage
|
||||
</div>
|
||||
<div class="itemContentNarrow">
|
||||
{{:value.damage}}
|
||||
</div>
|
||||
</div>
|
||||
{{/for}}
|
||||
</div>
|
||||
{{/if}}
|
||||
Reference in New Issue
Block a user