mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
@@ -52,14 +52,13 @@ GLOBAL_VAR_INIT(ENERGY_DAMAGE_ORGAN_FACTOR,0.035)
|
||||
var/ballistic_armor = getarmor(def_zone, "bullet")
|
||||
var/melee_armor = getarmor(def_zone, "melee")
|
||||
var/obj/item/organ/external/hit_organ
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(istype(H))
|
||||
hit_organ = H.get_organ(def_zone)
|
||||
if(organs.len)
|
||||
hit_organ = src.get_organ(def_zone)
|
||||
for(var/ext_organ in ballistic_variables["organ_hit_weight"])
|
||||
var/list/input = list()
|
||||
var/obj/item/organ/external/ref_ext_organ = H.get_organ(ext_organ)
|
||||
var/obj/item/organ/external/ref_ext_organ = src.get_organ(ext_organ)
|
||||
for(var/int_organ in ballistic_variables["organ_hit_weight"][ext_organ])
|
||||
var/ref_int_organ = H.internal_organs_by_name[int_organ]
|
||||
var/ref_int_organ = src.internal_organs_by_name[int_organ]
|
||||
if(ref_ext_organ && ref_int_organ && (ref_int_organ in ref_ext_organ.internal_organs))
|
||||
input[ref_int_organ] = ballistic_variables["organ_hit_weight"][ext_organ][int_organ]
|
||||
if(input.len)
|
||||
@@ -112,12 +111,16 @@ GLOBAL_VAR_INIT(ENERGY_DAMAGE_ORGAN_FACTOR,0.035)
|
||||
|
||||
/mob/living/proc/organ_handle_ballistics(var/obj/item/projectile/bullet/P,var/obj/item/organ/external/hit_organ,var/energy_dumped_organic,var/internal_loss,var/ballistic_armor,var/list/updated_organ_weight)
|
||||
var/conversion_efficiency = P.hollow_point ? GLOB.HOLLOW_POINT_CONVERSION_EFF : 1
|
||||
conversion_efficiency *= ballistic_variables["flesh_factors"]["damage_mult"]
|
||||
internal_loss *= ballistic_variables["flesh_factors"]["velloss_mult"]
|
||||
var/energy_past
|
||||
var/bone_chance = BONE_HIT_CHANCE_UNENCASED
|
||||
if(hit_organ.encased)
|
||||
bone_chance = BONE_HIT_CHANCE_ENCASED
|
||||
else
|
||||
bone_chance = ballistic_variables["bone_chance_unencased"][hit_organ.organ_tag]
|
||||
if(hit_organ.cannot_break)
|
||||
bone_chance = 0
|
||||
//log_and_message_admins("Bone hit chance is [bone_chance], organ is [hit_organ]")
|
||||
if(prob(bone_chance))
|
||||
var/energy_to_fracture = max(GLOB.BONE_JOULES_MIN, hit_organ.min_broken_damage * (GAUSSIAN_RANDOM()*GLOB.BONE_JOULES_PERHP_DEV + GLOB.BONE_JOULES_PERHP_AVG))
|
||||
@@ -192,12 +195,22 @@ GLOBAL_VAR_INIT(ENERGY_DAMAGE_ORGAN_FACTOR,0.035)
|
||||
|
||||
/mob/living/proc/general_handle_ballistics(var/obj/item/projectile/bullet/P,var/def_zone,var/energy_dumped_organic,var/internal_loss,var/ballistic_armor)
|
||||
var/conversion_efficiency = P.hollow_point ? GLOB.HOLLOW_POINT_CONVERSION_EFF : 1
|
||||
conversion_efficiency *= ballistic_variables["flesh_factors"]["damage_mult"]
|
||||
internal_loss *= ballistic_variables["flesh_factors"]["velloss_mult"]
|
||||
var/energy_past
|
||||
var/bone_chance = BONE_HIT_CHANCE_UNENCASED
|
||||
//if(def_zone in ballistic_variables["bone_chance_unencased"])
|
||||
//bone_chance = ballistic_variables["bone_chance_unencased"][def_zone]
|
||||
var/bone_strength = 1
|
||||
var/est_organ = def_zone
|
||||
if(!est_organ)
|
||||
est_organ = BP_TORSO
|
||||
if(est_organ in list(O_EYES, O_MOUTH))
|
||||
est_organ = BP_HEAD
|
||||
if(est_organ in ballistic_variables["bone_chance_unencased"])
|
||||
bone_chance = ballistic_variables["bone_chance_unencased"][est_organ]
|
||||
if(est_organ in ballistic_variables["bone_strength"])
|
||||
bone_strength = ballistic_variables["bone_strength"][est_organ]
|
||||
if(prob(bone_chance))
|
||||
var/energy_to_fracture = max(GLOB.BONE_JOULES_MIN, BONE_HP_AVG * (GAUSSIAN_RANDOM()*GLOB.BONE_JOULES_PERHP_DEV + GLOB.BONE_JOULES_PERHP_AVG))
|
||||
var/energy_to_fracture = max(GLOB.BONE_JOULES_MIN, BONE_HP_AVG * (GAUSSIAN_RANDOM()*GLOB.BONE_JOULES_PERHP_DEV + GLOB.BONE_JOULES_PERHP_AVG)) * bone_strength
|
||||
if(energy_to_fracture>=P.energy) //We don't have enough energy to get through the bone. This is the end for us!
|
||||
energy_dumped_organic += P.energy/2 //About half of our remaining energy will go into fucking up this boi, the rest is absorbed by the bone
|
||||
P.sub_velocity(P.velocity)
|
||||
@@ -207,22 +220,25 @@ GLOBAL_VAR_INIT(ENERGY_DAMAGE_ORGAN_FACTOR,0.035)
|
||||
P.sub_energy(energy_to_fracture)
|
||||
energy_dumped_organic += P.energy / 3 //About a third of the energy that goes into fracturing the bone also goes into fucking up tissues.
|
||||
|
||||
if(prob(HIT_VITAL_ORGAN_CHANCE))
|
||||
if((est_organ in ballistic_variables["organ_hit_chance"]) && prob(ballistic_variables["organ_hit_chance"][est_organ]))
|
||||
energy_past = P.energy
|
||||
P.sub_velocity(internal_loss)
|
||||
energy_dumped_organic += (energy_past - P.energy) * 1.5
|
||||
var/energy_mult = 1.5
|
||||
if(est_organ in ballistic_variables["organ_multiplier"])
|
||||
energy_mult = ballistic_variables["organ_multiplier"][est_organ]
|
||||
energy_dumped_organic += (energy_past - P.energy) * energy_mult
|
||||
if(!P.velocity)
|
||||
energy_to_damage(energy_dumped_organic * conversion_efficiency,def_zone,P)
|
||||
return 2
|
||||
energy_past = P.energy
|
||||
P.sub_velocity(internal_loss)
|
||||
energy_dumped_organic += energy_past - P.energy
|
||||
if(!P.velocity || (def_zone in ballistic_variables["organ_leave_early"]) || prob(PROB_LEAVE_EARLY_SECOND))
|
||||
if(!P.velocity || (est_organ in ballistic_variables["organ_leave_early"]) || prob(PROB_LEAVE_EARLY_SECOND))
|
||||
energy_to_damage(energy_dumped_organic * conversion_efficiency,def_zone,P)
|
||||
return P.velocity ? -1 : 2
|
||||
|
||||
if(prob(bone_chance))
|
||||
var/energy_to_fracture = max(GLOB.BONE_JOULES_MIN, BONE_HP_AVG * (GAUSSIAN_RANDOM()*GLOB.BONE_JOULES_PERHP_DEV + GLOB.BONE_JOULES_PERHP_AVG))
|
||||
var/energy_to_fracture = max(GLOB.BONE_JOULES_MIN, BONE_HP_AVG * (GAUSSIAN_RANDOM()*GLOB.BONE_JOULES_PERHP_DEV + GLOB.BONE_JOULES_PERHP_AVG)) * bone_strength
|
||||
if(energy_to_fracture>=P.energy) //We don't have enough energy to get through the bone. This is the end for us!
|
||||
energy_dumped_organic += P.energy/2 //About half of our remaining energy will go into fucking up this boi, the rest is absorbed by the bone
|
||||
P.sub_velocity(P.velocity)
|
||||
@@ -302,4 +318,17 @@ GLOBAL_VAR_INIT(ENERGY_DAMAGE_ORGAN_FACTOR,0.035)
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90) )
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 1.3, BP_TORSO = 1.15, BP_GROIN = 1, BP_L_FOOT = 0.7, BP_R_FOOT = 0.7, BP_L_LEG = 1.2, BP_R_LEG = 1.2, BP_L_ARM = 1, BP_R_ARM = 1, BP_L_HAND = 0.55, BP_R_HAND = 0.55), \
|
||||
"organ_multiplier" = list(BP_HEAD = 2, BP_TORSO = 1.75, BP_GROIN = 1.25)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/Initialize()
|
||||
. = ..()
|
||||
if(islist(ballistic_variables))
|
||||
ballistic_variables = widelist(ballistic_variables)
|
||||
|
||||
/mob/living/proc/b_test_proc()
|
||||
var/nameof = NAMEOF(src,ballistic_variables)
|
||||
log_world(nameof)
|
||||
return nameof
|
||||
@@ -0,0 +1,563 @@
|
||||
//Simple mobs
|
||||
/mob/living/simple_mob
|
||||
//These are the basic base settings for simple_mobs that pretty much says "most living things kinda approximate around these values", special cases will be accounted for in following overrides.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 80, BP_TORSO = 80, BP_GROIN = 20, BP_L_FOOT = 80, BP_R_FOOT = 80, BP_L_LEG = 35, BP_R_LEG = 35, BP_L_ARM = 65, BP_R_ARM = 65, BP_L_HAND = 80, BP_R_HAND = 80), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 1.3, BP_TORSO = 1.15, BP_GROIN = 1, BP_L_FOOT = 0.7, BP_R_FOOT = 0.7, BP_L_LEG = 1.2, BP_R_LEG = 1.2, BP_L_ARM = 1, BP_R_ARM = 1, BP_L_HAND = 0.55, BP_R_HAND = 0.55), \
|
||||
"organ_multiplier" = list(BP_HEAD = 4, BP_TORSO = 3.5, BP_GROIN = 2.5)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/animal/giant_spider
|
||||
//Spiders have an exoskeleton and no internal skeleton, so there'll be just 97% chance of hitting bone (3% for stuff like eyes and orifices), but the bone is much easier to punch through.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 97, BP_TORSO = 97, BP_GROIN = 97, BP_L_FOOT = 97, BP_R_FOOT = 97, BP_L_LEG = 97, BP_R_LEG = 97, BP_L_ARM = 97, BP_R_ARM = 97, BP_L_HAND = 97, BP_R_HAND = 97), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 0.35, BP_TORSO = 0.3, BP_GROIN = 0.25, BP_L_FOOT = 0.15, BP_R_FOOT = 0.15, BP_L_LEG = 0.2, BP_R_LEG = 0.2, BP_L_ARM = 0.2, BP_R_ARM = 0.2, BP_L_HAND = 0.15, BP_R_HAND = 0.15), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/metroid
|
||||
//Metroids aren't real but we can make some guesses, and they sure as hell don't have any bones. They also don't have any arms or feet, so we're gonna pretend like those are referring to the parts of the metroid slime that have no organs in them.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/mechanical
|
||||
//Okay, so my equations weren't really meant for stuff made out of metal, but we should be able to make it work anyways. We'll just make bone represent armor instead.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 85, BP_TORSO = 90, BP_GROIN = 90, BP_L_FOOT = 95, BP_R_FOOT = 95, BP_L_LEG = 95, BP_R_LEG = 95, BP_L_ARM = 95, BP_R_ARM = 95, BP_L_HAND = 95, BP_R_HAND = 95), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 80, BP_TORSO = 80, BP_GROIN = 80), \
|
||||
"bone_strength" = list(BP_HEAD = 2.5, BP_TORSO = 3, BP_GROIN = 2.75, BP_L_FOOT = 1.5, BP_R_FOOT = 1.5, BP_L_LEG = 2, BP_R_LEG = 2, BP_L_ARM = 1.75, BP_R_ARM = 1.75, BP_L_HAND = 1.35, BP_R_HAND = 1.35), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3, BP_TORSO = 2.5, BP_GROIN = 2.5)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/tomato
|
||||
//Going to copy from metroids, since they're honestly kind of similar, just blob shaped mushy creatures.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/animal/space/tree
|
||||
//It's uh, a tree? Gonna say here that the bark will act as a shitty equivalent to bones but be 100% encasing
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 100, BP_TORSO = 100, BP_GROIN = 100, BP_L_FOOT = 100, BP_R_FOOT = 100, BP_L_LEG = 100, BP_R_LEG = 100, BP_L_ARM = 100, BP_R_ARM = 100, BP_L_HAND = 100, BP_R_HAND = 100), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 0.075, BP_TORSO = 0.15, BP_GROIN = 0.2, BP_L_FOOT = 0.075, BP_R_FOOT = 0.075, BP_L_LEG = 0.1, BP_R_LEG = 0.1, BP_L_ARM = 0.075, BP_R_ARM = 0.075, BP_L_HAND = 0.05, BP_R_HAND = 0.05), \
|
||||
"organ_multiplier" = list(BP_HEAD = 4, BP_TORSO = 3.5, BP_GROIN = 2.5)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/slime
|
||||
//Slimes are also just getting copied from metroids, so scroll up for explanation.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/vore/pitcher_plant
|
||||
//Uhhh, well, pitcher plants are kinda funny because they're mostly hollow. Gonna pretty much just say that they have no organs and no bones here. Maybe later on we can add a special function for bullets to also act on whatever is inside.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/vore/bee
|
||||
//Bees also have exoskeletons, so copying from spiders pretty much.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 97, BP_TORSO = 97, BP_GROIN = 97, BP_L_FOOT = 97, BP_R_FOOT = 97, BP_L_LEG = 97, BP_R_LEG = 97, BP_L_ARM = 97, BP_R_ARM = 97, BP_L_HAND = 97, BP_R_HAND = 97), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 0.35, BP_TORSO = 0.3, BP_GROIN = 0.25, BP_L_FOOT = 0.15, BP_R_FOOT = 0.15, BP_L_LEG = 0.2, BP_R_LEG = 0.2, BP_L_ARM = 0.2, BP_R_ARM = 0.2, BP_L_HAND = 0.15, BP_R_HAND = 0.15), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/corrupthound
|
||||
//These are mechanical, so copying from mechanical.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 85, BP_TORSO = 90, BP_GROIN = 90, BP_L_FOOT = 95, BP_R_FOOT = 95, BP_L_LEG = 95, BP_R_LEG = 95, BP_L_ARM = 95, BP_R_ARM = 95, BP_L_HAND = 95, BP_R_HAND = 95), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 80, BP_TORSO = 80, BP_GROIN = 80), \
|
||||
"bone_strength" = list(BP_HEAD = 2.5, BP_TORSO = 3, BP_GROIN = 2.75, BP_L_FOOT = 1.5, BP_R_FOOT = 1.5, BP_L_LEG = 2, BP_R_LEG = 2, BP_L_ARM = 1.75, BP_R_ARM = 1.75, BP_L_HAND = 1.35, BP_R_HAND = 1.35), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3, BP_TORSO = 2.5, BP_GROIN = 2.5)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/frog
|
||||
//Frogs actually have some interesting anatomy. Giant head, small brain, large holes in the skull for eyes.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 65, BP_TORSO = 70, BP_GROIN = 20, BP_L_FOOT = 80, BP_R_FOOT = 80, BP_L_LEG = 35, BP_R_LEG = 35, BP_L_ARM = 65, BP_R_ARM = 65, BP_L_HAND = 80, BP_R_HAND = 80), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 50, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 1.3, BP_TORSO = 1.15, BP_GROIN = 1, BP_L_FOOT = 0.7, BP_R_FOOT = 0.7, BP_L_LEG = 1.2, BP_R_LEG = 1.2, BP_L_ARM = 1, BP_R_ARM = 1, BP_L_HAND = 0.55, BP_R_HAND = 0.55), \
|
||||
"organ_multiplier" = list(BP_HEAD = 4, BP_TORSO = 3.5, BP_GROIN = 2.9)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/animal/space/jelly
|
||||
//Copying from metroids again
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/vore/sect_queen
|
||||
//Exoskeleton, so, gonna copy from spiders and give a small bonus to the bone strength for the sheer size.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 97, BP_TORSO = 97, BP_GROIN = 97, BP_L_FOOT = 97, BP_R_FOOT = 97, BP_L_LEG = 97, BP_R_LEG = 97, BP_L_ARM = 97, BP_R_ARM = 97, BP_L_HAND = 97, BP_R_HAND = 97), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 0.45, BP_TORSO = 0.4, BP_GROIN = 0.35, BP_L_FOOT = 0.25, BP_R_FOOT = 0.25, BP_L_LEG = 0.3, BP_R_LEG = 0.3, BP_L_ARM = 0.3, BP_R_ARM = 0.3, BP_L_HAND = 0.25, BP_R_HAND = 0.25), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/vore/oregrub
|
||||
//They seem mushy and blobby, so gonna copy from metroids.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/vore/solargrub
|
||||
//Solargrubs also seem mushy and blobby, let's continue copying from metroids.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/vore/slug
|
||||
//Slugs are also mushy and blobby, gonna copy from metroids as well.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
/mob/living/simple_mob/vore/aggressive/mimic
|
||||
//Hmm, To be honest I imagine mimics having an exoskeleton, so I'm gonna copy from spiders and make a few changes for organ stuff.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 97, BP_TORSO = 97, BP_GROIN = 97, BP_L_FOOT = 97, BP_R_FOOT = 97, BP_L_LEG = 97, BP_R_LEG = 97, BP_L_ARM = 97, BP_R_ARM = 97, BP_L_HAND = 97, BP_R_HAND = 97), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 60, BP_TORSO = 80, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 0.35, BP_TORSO = 0.3, BP_GROIN = 0.25, BP_L_FOOT = 0.15, BP_R_FOOT = 0.15, BP_L_LEG = 0.2, BP_R_LEG = 0.2, BP_L_ARM = 0.2, BP_R_ARM = 0.2, BP_L_HAND = 0.15, BP_R_HAND = 0.15), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.5, BP_TORSO = 3.5, BP_GROIN = 3.5)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/vore/solarmoth
|
||||
//Solarmoths are getting directly copied from spiders, again because of exoskeleton
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 97, BP_TORSO = 97, BP_GROIN = 97, BP_L_FOOT = 97, BP_R_FOOT = 97, BP_L_LEG = 97, BP_R_LEG = 97, BP_L_ARM = 97, BP_R_ARM = 97, BP_L_HAND = 97, BP_R_HAND = 97), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 95, BP_TORSO = 90, BP_GROIN = 90), \
|
||||
"bone_strength" = list(BP_HEAD = 0.35, BP_TORSO = 0.3, BP_GROIN = 0.25, BP_L_FOOT = 0.15, BP_R_FOOT = 0.15, BP_L_LEG = 0.2, BP_R_LEG = 0.2, BP_L_ARM = 0.2, BP_R_ARM = 0.2, BP_L_HAND = 0.15, BP_R_HAND = 0.15), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1,"velloss_mult" = 1))
|
||||
|
||||
/mob/living/simple_mob/blob
|
||||
//Apparently these are considered slimes in code, so gonna copy from metroid for them.
|
||||
ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_HEAD = 90, BP_TORSO = 95, BP_GROIN = 95), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
|
||||
//Species
|
||||
/datum/species/shapeshifter/promethean/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||
.=..()
|
||||
//Honestly this is mostly for balancing purposes, since prometheans have no bones and weirder organs it fucks with the numbers, so giving them a bit more flesh damage
|
||||
H.ballistic_variables = list(\
|
||||
"bone_chance_unencased" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_leave_early" = list("l_arm", "r_arm", "l_hand", "r_hand", "l_foot", "r_foot"), \
|
||||
"organ_hit_weight" = list(\
|
||||
BP_HEAD = list(\
|
||||
/*Standard organs*/O_BRAIN = 90, O_EYES = 5, \
|
||||
/*Diona organs*/O_RESPONSE = 10, O_RESPONSE = 15, O_GBLADDER = 15, \
|
||||
/*Replicant organs*/O_VRLINK = 20, \
|
||||
/*Xeno organs*/O_ACID = 10, O_RESIN = 10), \
|
||||
BP_TORSO = list(\
|
||||
/*Standard organs*/O_HEART = 5, O_LUNGS = 50, O_SPLEEN = 15, O_VOICE = 10, \
|
||||
/*Synth organs*/O_CELL = 5, O_PUMP = 15, O_HEATSINK = 35, O_CYCLER = 15, O_DIAGNOSTIC = 10, \
|
||||
/*Promethean organs*/O_REGBRUTE = 20, O_REGBURN = 20, O_REGOXY = 20, O_REGTOX = 20, \
|
||||
/*Diona organs*/O_STRATA = 35, O_BRAIN = 20, O_NUTRIENT = 10, \
|
||||
/*Replicant organs*/O_AREJECT = 35, \
|
||||
/*Xeno organs*/O_PLASMA = 10, O_HIVE = 10), \
|
||||
BP_GROIN = list(\
|
||||
/*Standard organs*/O_INTESTINES = 50, O_STOMACH = 20, O_LIVER = 20, O_KIDNEYS = 15, O_APPENDIX = 5, \
|
||||
/*Diona organs*/O_POLYP = 10, O_ANCHOR = 15, \
|
||||
/*Replicant organs*/O_VENTC = 20, \
|
||||
/*Xeno organs*/ O_EGG = 25) ), \
|
||||
"organ_hit_chance" = list(BP_TORSO = 85), \
|
||||
"bone_strength" = list(BP_HEAD = 0, BP_TORSO = 0, BP_GROIN = 0, BP_L_FOOT = 0, BP_R_FOOT = 0, BP_L_LEG = 0, BP_R_LEG = 0, BP_L_ARM = 0, BP_R_ARM = 0, BP_L_HAND = 0, BP_R_HAND = 0), \
|
||||
"organ_multiplier" = list(BP_HEAD = 3.6, BP_TORSO = 3.5, BP_GROIN = 3.4)/*Only used for simple mobs*/, \
|
||||
"flesh_factors" = list("damage_mult" = 1.175,"velloss_mult" = 1.3))
|
||||
H.ballistic_variables = widelist(H.ballistic_variables)
|
||||
Reference in New Issue
Block a user