mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-07-14 01:33:28 +01:00
Medical Expansion (#6465)
* Starts work on the Medical Expansion. * Further Work * Save Everything! * Large volume of things. * Log of Change * I'm an idiot. * Kidney assisted sprites. They didn't exist, for some reason. * Fixfix * Fixfix * Update encased.dm * Update glass.dm * Update Chemistry-Reagents.dm I am once more an idiot. * Split augs. * Fixfix
This commit is contained in:
@@ -974,7 +974,7 @@
|
||||
var/brainOxPercent = 0.015 //Default 1.5% of your current oxyloss is applied as brain damage, 50 oxyloss is 1 brain damage
|
||||
if(CE_STABLE in chem_effects)
|
||||
brainOxPercent = 0.008 //Halved in effect
|
||||
if(oxyloss >= 20 && prob(5))
|
||||
if(oxyloss >= (getMaxHealth() * 0.3) && prob(5)) // If oxyloss exceeds 30% of your max health, you can take brain damage.
|
||||
adjustBrainLoss(brainOxPercent * oxyloss)
|
||||
|
||||
if(halloss >= species.total_health)
|
||||
@@ -1547,6 +1547,8 @@
|
||||
|
||||
var/temp = PULSE_NORM
|
||||
|
||||
var/brain_modifier = 1
|
||||
|
||||
var/modifier_shift = 0
|
||||
var/modifier_set
|
||||
|
||||
@@ -1578,6 +1580,14 @@
|
||||
|
||||
var/obj/item/organ/internal/heart/Pump = internal_organs_by_name[O_HEART]
|
||||
|
||||
var/obj/item/organ/internal/brain/Control = internal_organs_by_name[O_BRAIN]
|
||||
|
||||
if(Control)
|
||||
brain_modifier = Control.get_control_efficiency()
|
||||
|
||||
if(brain_modifier <= 0.7 && brain_modifier >= 0.4) // 70%-40% control, things start going weird as the brain is failing.
|
||||
brain_modifier = rand(5, 15) / 10
|
||||
|
||||
if(Pump)
|
||||
temp += Pump.standard_pulse_level - PULSE_NORM
|
||||
|
||||
@@ -1605,7 +1615,7 @@
|
||||
if(R.id in cheartstopper) //Conditional heart-stoppage
|
||||
if(R.volume >= R.overdose)
|
||||
temp = PULSE_NONE
|
||||
return temp
|
||||
return temp * brain_modifier
|
||||
//handles different chems' influence on pulse
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
if(R.id in bradycardics)
|
||||
@@ -1620,7 +1630,7 @@
|
||||
if(R.volume >= R.overdose)
|
||||
temp = PULSE_NONE
|
||||
|
||||
return temp
|
||||
return round(temp * brain_modifier)
|
||||
|
||||
/mob/living/carbon/human/proc/handle_heartbeat()
|
||||
if(pulse == PULSE_NONE)
|
||||
|
||||
@@ -60,7 +60,9 @@
|
||||
O_BRAIN = /obj/item/organ/internal/brain/replicant,
|
||||
O_EYES = /obj/item/organ/internal/eyes/replicant,
|
||||
O_AREJECT = /obj/item/organ/internal/immunehub/replicant,
|
||||
O_VRLINK = /obj/item/organ/internal/brainmirror
|
||||
O_VRLINK = /obj/item/organ/internal/brainmirror,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
/datum/species/shapeshifter/replicant/alpha
|
||||
@@ -95,7 +97,9 @@
|
||||
O_AREJECT = /obj/item/organ/internal/immunehub/replicant,
|
||||
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/replicant,
|
||||
O_ACID = /obj/item/organ/internal/xenos/acidgland/replicant,
|
||||
O_VRLINK = /obj/item/organ/internal/brainmirror
|
||||
O_VRLINK = /obj/item/organ/internal/brainmirror,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
/datum/species/shapeshifter/replicant/beta
|
||||
@@ -119,5 +123,7 @@
|
||||
O_VENTC = /obj/item/organ/internal/metamorphgland/replicant,
|
||||
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/replicant,
|
||||
O_RESIN = /obj/item/organ/internal/xenos/resinspinner/replicant,
|
||||
O_VRLINK = /obj/item/organ/internal/brainmirror
|
||||
O_VRLINK = /obj/item/organ/internal/brainmirror,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
@@ -196,7 +196,9 @@
|
||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
O_BRAIN = /obj/item/organ/internal/brain,
|
||||
O_APPENDIX = /obj/item/organ/internal/appendix,
|
||||
O_EYES = /obj/item/organ/internal/eyes
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
var/vision_organ // If set, this organ is required for vision. Defaults to "eyes" if the species has them.
|
||||
var/dispersed_eyes // If set, the species will be affected by flashbangs regardless if they have eyes or not, as they see in large areas.
|
||||
|
||||
@@ -48,8 +48,11 @@
|
||||
O_VOICE = /obj/item/organ/internal/voicebox,
|
||||
O_LIVER = /obj/item/organ/internal/liver,
|
||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
O_SPLEEN = /obj/item/organ/internal/spleen/minor,
|
||||
O_BRAIN = /obj/item/organ/internal/brain,
|
||||
O_EYES = /obj/item/organ/internal/eyes
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE =/obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
/*
|
||||
|
||||
@@ -110,7 +110,9 @@
|
||||
O_LIVER = /obj/item/organ/internal/liver,
|
||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
O_BRAIN = /obj/item/organ/internal/brain,
|
||||
O_EYES = /obj/item/organ/internal/eyes
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
unarmed_types = list(
|
||||
|
||||
@@ -25,6 +25,20 @@
|
||||
spawn_flags = SPECIES_CAN_JOIN
|
||||
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | HAS_EYE_COLOR
|
||||
|
||||
has_organ = list(
|
||||
O_HEART = /obj/item/organ/internal/heart,
|
||||
O_LUNGS = /obj/item/organ/internal/lungs,
|
||||
O_VOICE = /obj/item/organ/internal/voicebox,
|
||||
O_LIVER = /obj/item/organ/internal/liver,
|
||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
O_BRAIN = /obj/item/organ/internal/brain,
|
||||
O_APPENDIX = /obj/item/organ/internal/appendix,
|
||||
O_SPLEEN = /obj/item/organ/internal/spleen,
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/tie_hair)
|
||||
|
||||
@@ -122,6 +136,8 @@
|
||||
O_LIVER = /obj/item/organ/internal/liver/unathi,
|
||||
O_BRAIN = /obj/item/organ/internal/brain/unathi,
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach/unathi,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine/unathi
|
||||
)
|
||||
|
||||
|
||||
@@ -228,7 +244,9 @@
|
||||
O_LIVER = /obj/item/organ/internal/liver,
|
||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
O_BRAIN = /obj/item/organ/internal/brain,
|
||||
O_EYES = /obj/item/organ/internal/eyes
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
/datum/species/tajaran/equip_survival_gear(var/mob/living/carbon/human/H)
|
||||
@@ -384,7 +402,9 @@
|
||||
O_LIVER = /obj/item/organ/internal/liver,
|
||||
O_KIDNEYS = /obj/item/organ/internal/kidneys,
|
||||
O_BRAIN = /obj/item/organ/internal/brain,
|
||||
O_EYES = /obj/item/organ/internal/eyes
|
||||
O_EYES = /obj/item/organ/internal/eyes,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach,
|
||||
O_INTESTINE =/obj/item/organ/internal/intestine
|
||||
)
|
||||
|
||||
descriptors = list(
|
||||
|
||||
@@ -51,7 +51,9 @@
|
||||
O_BRAIN = /obj/item/organ/internal/brain/xeno,
|
||||
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel,
|
||||
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach/xeno,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine/xeno
|
||||
)
|
||||
|
||||
bump_flag = ALIEN
|
||||
@@ -182,7 +184,9 @@
|
||||
O_ACID = /obj/item/organ/internal/xenos/acidgland,
|
||||
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
|
||||
O_RESIN = /obj/item/organ/internal/xenos/resinspinner,
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach/xeno,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine/xeno
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
@@ -218,7 +222,9 @@
|
||||
O_BRAIN = /obj/item/organ/internal/brain/xeno,
|
||||
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/hunter,
|
||||
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach/xeno,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine/xeno
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
@@ -247,7 +253,9 @@
|
||||
O_PLASMA = /obj/item/organ/internal/xenos/plasmavessel/sentinel,
|
||||
O_ACID = /obj/item/organ/internal/xenos/acidgland,
|
||||
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach/xeno,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine/xeno
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
@@ -284,7 +292,9 @@
|
||||
O_ACID = /obj/item/organ/internal/xenos/acidgland,
|
||||
O_HIVE = /obj/item/organ/internal/xenos/hivenode,
|
||||
O_RESIN = /obj/item/organ/internal/xenos/resinspinner,
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients
|
||||
O_NUTRIENT = /obj/item/organ/internal/diona/nutrients,
|
||||
O_STOMACH = /obj/item/organ/internal/stomach/xeno,
|
||||
O_INTESTINE = /obj/item/organ/internal/intestine/xeno
|
||||
)
|
||||
|
||||
inherent_verbs = list(
|
||||
|
||||
@@ -1002,6 +1002,14 @@ default behaviour is:
|
||||
else
|
||||
to_chat(src, "<span class='warning'>You feel nauseous...</span>")
|
||||
|
||||
if(ishuman(src))
|
||||
var/mob/living/carbon/human/Hu = src
|
||||
if(CE_ANTACID in Hu.chem_effects)
|
||||
if(prob(min(90, Hu.chem_effects[CE_ANTACID] * 15)))
|
||||
spawn(rand(30 SECONDS, 2 MINUTES))
|
||||
lastpuke = FALSE
|
||||
return
|
||||
|
||||
spawn()
|
||||
if(!skip_wait)
|
||||
sleep(150) //15 seconds until second warning
|
||||
|
||||
@@ -97,6 +97,29 @@
|
||||
flick("portable_analyzer_load", src)
|
||||
icon_state = "portable_analyzer_full"
|
||||
|
||||
/obj/item/weapon/portable_scanner
|
||||
name = "Portable Resonant Analyzer"
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "portable_scanner"
|
||||
desc = "An advanced scanning device used for analyzing objects without completely annihilating them for science. Unfortunately, it has no connection to any database like its angrier cousin."
|
||||
|
||||
/obj/item/weapon/portable_scanner/afterattack(var/atom/target, var/mob/living/user, proximity)
|
||||
if(!target)
|
||||
return
|
||||
if(!proximity)
|
||||
return
|
||||
if(istype(target,/obj/item))
|
||||
var/obj/item/I = target
|
||||
if(do_after(src, 5 SECONDS * I.w_class))
|
||||
for(var/mob/M in viewers())
|
||||
M.show_message(text("<span class='notice'>[user] sweeps \the [src] over \the [I].</span>"), 1)
|
||||
flick("[initial(icon_state)]-scan", src)
|
||||
if(I.origin_tech && I.origin_tech.len)
|
||||
for(var/T in I.origin_tech)
|
||||
to_chat(user, "<span class='notice'>\The [I] had level [I.origin_tech[T]] in [CallTechName(T)].</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [I] cannot be scanned by \the [src].</span>")
|
||||
|
||||
//This is used to unlock other borg covers.
|
||||
/obj/item/weapon/card/robot //This is not a child of id cards, as to avoid dumb typechecks on computers.
|
||||
name = "access code transmission device"
|
||||
|
||||
Reference in New Issue
Block a user