mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-21 11:07:46 +01:00
Adds Skeletons for background use
This commit is contained in:
@@ -112,5 +112,5 @@
|
||||
|
||||
mutations.Add(SKELETON)
|
||||
status_flags |= DISFIGURED
|
||||
update_body(0)
|
||||
update_body(1)
|
||||
return
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
/datum/species/skeleton
|
||||
name = "Skeleton"
|
||||
name_plural = "Skeletons"
|
||||
icobase = 'icons/mob/human_races/r_skeleton.dmi'
|
||||
primitive_form = "Monkey"
|
||||
language = "Sol Common"
|
||||
unarmed_types = list(/datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/sharp) //Bones are pointy, fight me.
|
||||
blurb = "Spooky Scary Skeletons!"
|
||||
name_language = null // Use the first-name last-name generator rather than a language scrambler
|
||||
min_age = 17
|
||||
max_age = 110
|
||||
health_hud_intensity = 1.5
|
||||
|
||||
flags = NO_SCAN | NO_PAIN | NO_SLIP | NO_POISON | NO_MINOR_CUT | NO_BLOOD | UNDEAD
|
||||
spawn_flags = SPECIES_IS_RESTRICTED
|
||||
appearance_flags = null
|
||||
|
||||
show_ssd = null
|
||||
|
||||
blood_volume = null
|
||||
taste_sensitivity = TASTE_DULL
|
||||
hunger_factor = 0
|
||||
metabolic_rate = 0
|
||||
|
||||
virus_immune = 1
|
||||
|
||||
brute_mod = 1
|
||||
burn_mod = 0
|
||||
oxy_mod = 0
|
||||
toxins_mod = 0
|
||||
radiation_mod = 0
|
||||
flash_mod = 0
|
||||
chemOD_mod = 0
|
||||
|
||||
siemens_coefficient = 0
|
||||
|
||||
death_message = "falls over and stops moving!"
|
||||
knockout_message = "falls over and stops moving!"
|
||||
|
||||
has_organ = list()
|
||||
|
||||
warning_low_pressure = 50
|
||||
hazard_low_pressure = -1
|
||||
|
||||
cold_level_1 = 50
|
||||
cold_level_2 = -1
|
||||
cold_level_3 = -1
|
||||
|
||||
heat_level_1 = 2000
|
||||
heat_level_2 = 3000
|
||||
heat_level_3 = 4000
|
||||
|
||||
body_temperature = T20C
|
||||
@@ -695,9 +695,21 @@ default behaviour is:
|
||||
if(A.has_gravity)
|
||||
//this is the gay blood on floor shit -- Added back -- Skie
|
||||
if (M.lying && (prob(M.getBruteLoss() / 6)))
|
||||
var/turf/location = M.loc
|
||||
if (istype(location, /turf/simulated))
|
||||
location.add_blood(M)
|
||||
var/bloodtrail = 1 //Checks if it's possible to even spill blood
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.species.flags & NO_BLOOD)
|
||||
bloodtrail = 0
|
||||
else
|
||||
var/blood_volume = round((H.vessel.get_reagent_amount("blood")/H.species.blood_volume)*100)
|
||||
if(blood_volume < BLOOD_VOLUME_SURVIVE)
|
||||
bloodtrail = 0 //Most of it's gone already, just leave it be
|
||||
else
|
||||
H.vessel.remove_reagent("blood", 1)
|
||||
if(bloodtrail)
|
||||
var/turf/location = M.loc
|
||||
if(istype(location, /turf/simulated))
|
||||
location.add_blood(M)
|
||||
//pull damage with injured people
|
||||
if(prob(25))
|
||||
M.adjustBruteLoss(1)
|
||||
@@ -708,13 +720,20 @@ default behaviour is:
|
||||
visible_message("<span class='danger'>\The [M]'s [M.isSynthetic() ? "state" : "wounds"] worsen terribly from being dragged!</span>")
|
||||
var/turf/location = M.loc
|
||||
if (istype(location, /turf/simulated))
|
||||
location.add_blood(M)
|
||||
var/bloodtrail = 1 //Checks if it's possible to even spill blood
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/blood_volume = round(H.vessel.get_reagent_amount("blood"))
|
||||
if(blood_volume > 0)
|
||||
H.vessel.remove_reagent("blood", 1)
|
||||
|
||||
if(H.species.flags & NO_BLOOD)
|
||||
bloodtrail = 0
|
||||
else
|
||||
var/blood_volume = round((H.vessel.get_reagent_amount("blood")/H.species.blood_volume)*100)
|
||||
if(blood_volume < BLOOD_VOLUME_SURVIVE)
|
||||
bloodtrail = 0 //Most of it's gone already, just leave it be
|
||||
else
|
||||
H.vessel.remove_reagent("blood", 1)
|
||||
if(bloodtrail)
|
||||
if(istype(location, /turf/simulated))
|
||||
location.add_blood(M)
|
||||
|
||||
step(pulling, get_dir(pulling.loc, T))
|
||||
if(t)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -485,13 +485,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))
|
||||
if((damage > 5 || damage + burn_dam >= 15) && type == BURN && (robotic < ORGAN_ROBOT) && !(species.flags & NO_BLOOD))
|
||||
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)
|
||||
|
||||
@@ -679,7 +679,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
|
||||
@@ -754,7 +754,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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user