Polaris Sync

This commit is contained in:
killer653
2017-10-16 22:16:24 -04:00
249 changed files with 6618 additions and 2568 deletions
+13
View File
@@ -17,6 +17,9 @@ var/const/CE_STABLE_THRESHOLD = 0.5
if(vessel)
return
if(species.flags & NO_BLOOD)
return
vessel = new/datum/reagents(species.blood_volume)
vessel.my_atom = src
@@ -139,6 +142,16 @@ var/const/CE_STABLE_THRESHOLD = 0.5
//Bleeding out
var/blood_max = 0
var/blood_loss_divisor = 30 //lower factor = more blood loss
// Some modifiers can make bleeding better or worse. Higher multiplers = more bleeding.
var/blood_loss_modifier_multiplier = 1.0
for(var/datum/modifier/M in modifiers)
if(!isnull(M.bleeding_rate_percent))
blood_loss_modifier_multiplier += (M.bleeding_rate_percent - 1.0)
blood_loss_divisor /= blood_loss_modifier_multiplier
//This 30 is the "baseline" of a cut in the "vital" regions (head and torso).
for(var/obj/item/organ/external/temp in bad_external_organs)
if(!(temp.status & ORGAN_BLEEDING) || (temp.robotic >= ORGAN_ROBOT))
+5
View File
@@ -79,6 +79,11 @@
brainmob.dna = H.dna.Clone()
brainmob.timeofhostdeath = H.timeofdeath
// Copy modifiers.
for(var/datum/modifier/M in H.modifiers)
if(M.flags & MODIFIER_GENETIC)
brainmob.add_modifier(M.type)
if(H.mind)
H.mind.transfer_to(brainmob)
+4 -4
View File
@@ -487,13 +487,13 @@ This function completely restores a damaged organ to perfect condition.
//moved this before the open_wound check so that having many small wounds for example doesn't somehow protect you from taking internal damage (because of the return)
//Possibly trigger an internal wound, too.
var/local_damage = brute_dam + burn_dam + damage
if((damage > 15) && (type != BURN) && (local_damage > 30) && prob(damage) && (robotic < ORGAN_ROBOT))
if((damage > 15) && (type != BURN) && (local_damage > 30) && prob(damage) && (robotic < ORGAN_ROBOT) && !(species.flags & NO_BLOOD))
var/datum/wound/internal_bleeding/I = new (min(damage - 15, 15))
wounds += I
owner.custom_pain("You feel something rip in your [name]!", 50)
//Burn damage can cause fluid loss due to blistering and cook-off
if((damage > 5 || damage + burn_dam >= 15) && type == BURN && (robotic < ORGAN_ROBOT) && !istype(owner.loc,/mob/living) && !istype(owner.loc,/obj/item/device/dogborg/sleeper)) // VOREStation Edit
if((damage > 5 || damage + burn_dam >= 15) && type == BURN && (robotic < ORGAN_ROBOT) && !(species.flags & NO_BLOOD) && !istype(owner.loc,/mob/living) && !istype(owner.loc,/obj/item/device/dogborg/sleeper)) // VOREStation Edit
var/fluid_loss = 0.75 * (damage/(owner.getMaxHealth() - config.health_threshold_dead)) * owner.species.blood_volume*(1 - BLOOD_VOLUME_SURVIVE/100)
owner.remove_blood(fluid_loss)
@@ -681,7 +681,7 @@ Note that amputating the affected organ does in fact remove the infection from t
//Updating wounds. Handles wound natural I had some free spachealing, internal bleedings and infections
/obj/item/organ/external/proc/update_wounds()
if((robotic >= ORGAN_ROBOT)) //Robotic limbs don't heal or get worse.
if((robotic >= ORGAN_ROBOT) || (species.flags & UNDEAD)) //Robotic and dead limbs don't heal or get worse.
for(var/datum/wound/W in wounds) //Repaired wounds disappear though
if(W.damage <= 0) //and they disappear right away
wounds -= W //TODO: robot wounds for robot limbs
@@ -756,7 +756,7 @@ Note that amputating the affected organ does in fact remove the infection from t
else
brute_dam += W.damage
if(!(robotic >= ORGAN_ROBOT) && W.bleeding() && (H && H.should_have_organ(O_HEART)))
if(!(robotic >= ORGAN_ROBOT) && W.bleeding() && (H && H.should_have_organ(O_HEART)) && !(H.species.flags & NO_BLOOD))
W.bleed_timer--
status |= ORGAN_BLEEDING
+2
View File
@@ -19,6 +19,8 @@ var/global/list/limb_icon_cache = list()
if(robotic >= ORGAN_ROBOT)
var/datum/robolimb/franchise = all_robolimbs[model]
if(!(franchise && franchise.lifelike))
if(human.synth_color)
s_col = list(human.r_synth, human.g_synth, human.b_synth)
return
if(species && human.species && species.name != human.species.name)
return
+14
View File
@@ -245,6 +245,20 @@ var/const/standard_monitor_styles = "blank=ipc_blank;\
green=xion_green;\
rgb=xion_rgb"
/datum/robolimb/xion_alt3
company = "Xion - Whiteout"
desc = "This limb has a minimalist black and white casing."
icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt3.dmi'
unavailable_to_build = 1
/datum/robolimb/xion_alt4
company = "Xion - Breach - Whiteout"
desc = "This limb has a minimalist black and white casing. Looks a bit menacing."
icon = 'icons/mob/human_races/cyberlimbs/xion/xion_alt4.dmi'
unavailable_to_build = 1
parts = list(BP_HEAD)
/datum/robolimb/xion_monitor
company = "Xion Monitor"
desc = "Xion Mfg.'s unique spin on a popular prosthetic head model. It looks and minimalist and utilitarian."
+2 -2
View File
@@ -2,7 +2,7 @@
name = "microbattery"
desc = "A small, powerful cell for use in fully prosthetic bodies."
icon_state = "scell"
organ_tag = "cell"
organ_tag = O_CELL
parent_organ = BP_TORSO
vital = 1
@@ -21,7 +21,7 @@
// Used for an MMI or posibrain being installed into a human.
/obj/item/organ/internal/mmi_holder
name = "brain interface"
organ_tag = "brain"
organ_tag = O_BRAIN
parent_organ = BP_HEAD
vital = 1
var/brain_type = /obj/item/device/mmi