mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-08-22 04:36:53 +01:00
FBP Internal Components (#7445)
* Starts work on FBP components * Complete * Map * Tweakening. * P r e c i s i o n * P r e c i s i o n Engineering
This commit is contained in:
@@ -209,32 +209,37 @@
|
||||
if(stat == DEAD) return
|
||||
|
||||
to_chat(src, "<span class='notice'>Performing self-diagnostic, please wait...</span>")
|
||||
sleep(50)
|
||||
var/output = "<span class='notice'>Self-Diagnostic Results:\n</span>"
|
||||
|
||||
output += "Internal Temperature: [convert_k2c(bodytemperature)] Degrees Celsius\n"
|
||||
spawn(50)
|
||||
var/output = "<span class='notice'>Self-Diagnostic Results:\n</span>"
|
||||
|
||||
output += "Current Battery Charge: [nutrition]\n"
|
||||
output += "Internal Temperature: [convert_k2c(bodytemperature)] Degrees Celsius\n"
|
||||
|
||||
var/toxDam = getToxLoss()
|
||||
if(toxDam)
|
||||
output += "System Instability: <span class='warning'>[toxDam > 25 ? "Severe" : "Moderate"]</span>. Seek charging station for cleanup.\n"
|
||||
else
|
||||
output += "System Instability: <span style='color:green;'>OK</span>\n"
|
||||
if(isSynthetic())
|
||||
output += "Current Battery Charge: [nutrition]\n"
|
||||
|
||||
for(var/obj/item/organ/external/EO in organs)
|
||||
if(EO.brute_dam || EO.burn_dam)
|
||||
output += "[EO.name] - <span class='warning'>[EO.burn_dam + EO.brute_dam > ROBOLIMB_REPAIR_CAP ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
else
|
||||
output += "[EO.name] - <span style='color:green;'>OK</span>\n"
|
||||
if(isSynthetic())
|
||||
var/toxDam = getToxLoss()
|
||||
if(toxDam)
|
||||
output += "System Instability: <span class='warning'>[toxDam > 25 ? "Severe" : "Moderate"]</span>. Seek charging station for cleanup.\n"
|
||||
else
|
||||
output += "System Instability: <span style='color:green;'>OK</span>\n"
|
||||
|
||||
for(var/obj/item/organ/IO in internal_organs)
|
||||
if(IO.damage)
|
||||
output += "[IO.name] - <span class='warning'>[IO.damage > 10 ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
else
|
||||
output += "[IO.name] - <span style='color:green;'>OK</span>\n"
|
||||
for(var/obj/item/organ/external/EO in organs)
|
||||
if(EO.robotic >= ORGAN_ASSISTED)
|
||||
if(EO.brute_dam || EO.burn_dam)
|
||||
output += "[EO.name] - <span class='warning'>[EO.burn_dam + EO.brute_dam > ROBOLIMB_REPAIR_CAP ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
else
|
||||
output += "[EO.name] - <span style='color:green;'>OK</span>\n"
|
||||
|
||||
to_chat(src,output)
|
||||
for(var/obj/item/organ/IO in internal_organs)
|
||||
if(IO.robotic >= ORGAN_ASSISTED)
|
||||
if(IO.damage)
|
||||
output += "[IO.name] - <span class='warning'>[IO.damage > 10 ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
else
|
||||
output += "[IO.name] - <span style='color:green;'>OK</span>\n"
|
||||
|
||||
to_chat(src,output)
|
||||
|
||||
/mob/living/carbon/human
|
||||
var/next_sonar_ping = 0
|
||||
|
||||
@@ -777,9 +777,12 @@
|
||||
if (species.body_temperature == null)
|
||||
return //this species doesn't have metabolic thermoregulation
|
||||
|
||||
// FBPs will overheat, prosthetic limbs are fine.
|
||||
if(robobody_count)
|
||||
bodytemperature += round(robobody_count*1.75)
|
||||
// FBPs will overheat when alive, prosthetic limbs are fine.
|
||||
if(stat != DEAD && robobody_count)
|
||||
bodytemperature += round(robobody_count*1.15)
|
||||
var/obj/item/organ/internal/robotic/heatsink/HS = internal_organs_by_name[O_HEATSINK]
|
||||
if(!HS || HS.is_broken())
|
||||
bodytemperature += round(robobody_count*0.5)
|
||||
|
||||
var/body_temperature_difference = species.body_temperature - bodytemperature
|
||||
|
||||
@@ -898,14 +901,14 @@
|
||||
if(reagents)
|
||||
chem_effects.Cut()
|
||||
|
||||
if(!isSynthetic())
|
||||
if(touching)
|
||||
touching.metabolize()
|
||||
if(ingested)
|
||||
ingested.metabolize()
|
||||
if(bloodstr)
|
||||
bloodstr.metabolize()
|
||||
|
||||
if(touching)
|
||||
touching.metabolize()
|
||||
if(ingested)
|
||||
ingested.metabolize()
|
||||
if(bloodstr)
|
||||
bloodstr.metabolize()
|
||||
if(!isSynthetic())
|
||||
|
||||
var/total_phoronloss = 0
|
||||
for(var/obj/item/I in src)
|
||||
@@ -1429,7 +1432,7 @@
|
||||
if(prob(5))
|
||||
to_chat(src, "<span class='danger'>You lose directional control!</span>")
|
||||
Confuse(10)
|
||||
if (getToxLoss() >= 45)
|
||||
if (getToxLoss() >= 45 && !isSynthetic())
|
||||
spawn vomit()
|
||||
|
||||
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
var/show_ssd = "fast asleep"
|
||||
var/virus_immune
|
||||
var/short_sighted // Permanent weldervision.
|
||||
var/blood_name = "blood" // Name for the species' blood.
|
||||
var/blood_volume = 560 // Initial blood volume.
|
||||
var/bloodloss_rate = 1 // Multiplier for how fast a species bleeds out. Higher = Faster
|
||||
var/blood_level_safe = 0.85 //"Safe" blood level; above this, you're OK
|
||||
|
||||
@@ -63,6 +63,14 @@
|
||||
else
|
||||
return blood_color
|
||||
|
||||
/datum/species/proc/get_blood_name(var/mob/living/carbon/human/H)
|
||||
if(H)
|
||||
var/datum/robolimb/company = H.isSynthetic()
|
||||
if(company)
|
||||
return company.blood_name
|
||||
else
|
||||
return blood_name
|
||||
|
||||
/datum/species/proc/get_virus_immune(var/mob/living/carbon/human/H)
|
||||
return ((H && H.isSynthetic()) ? 1 : virus_immune)
|
||||
|
||||
|
||||
@@ -34,6 +34,8 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
secondary_langs = list(LANGUAGE_PROMETHEAN, LANGUAGE_SOL_COMMON) // For some reason, having this as their species language does not allow it to be chosen.
|
||||
assisted_langs = list(LANGUAGE_ROOTGLOBAL, LANGUAGE_VOX) // Prometheans are weird, let's just assume they can use basically any language.
|
||||
|
||||
blood_name = "gelatinous ooze"
|
||||
|
||||
breath_type = null
|
||||
poison_type = null
|
||||
|
||||
|
||||
Reference in New Issue
Block a user