mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Tweaks to previous commits.
More tweaks to IPC fixes. Merge resolution/compile fixes. Further work on properly integrating, updating and fixing prosthetic options. Repathed internal organs to organ/internal. More work on full synthetics, changelings, overheating. Working on getting organs to qdel properly and spawn properly when robotized. Finalized some overheating values, added remaining prosthetic icons. Finalizing the testing version of the full prosthetic bodies branch. Added suit cyclers to the autolathe and map. Fixing runtime errors. Fixing errors. Changelog. Replacing limb and organ strings with constants. Prevented brainless species from becoming full cyborgs. Fixed issues with brain/MMIs renaming themselves inappropriately. Various fixes and oversights.
This commit is contained in:
@@ -11,15 +11,16 @@
|
||||
return L.mob_size <= MOB_SMALL
|
||||
return 0
|
||||
|
||||
/mob/living/proc/isSynthetic()
|
||||
return 0
|
||||
|
||||
// If they are 100% robotic, they count as synthetic.
|
||||
/mob/living/carbon/human/isSynthetic()
|
||||
// If they are 100% robotic, they count as synthetic.
|
||||
for(var/obj/item/organ/external/E in organs)
|
||||
if(!(E.status & ORGAN_ROBOT))
|
||||
return 0
|
||||
return 1
|
||||
if(isnull(full_prosthetic))
|
||||
robolimb_count = 0
|
||||
for(var/obj/item/organ/external/E in organs)
|
||||
if(E.status & ORGAN_ROBOT)
|
||||
robolimb_count++
|
||||
if(robolimb_count == organs.len)
|
||||
full_prosthetic = 1
|
||||
return full_prosthetic
|
||||
|
||||
/mob/living/silicon/isSynthetic()
|
||||
return 1
|
||||
@@ -72,46 +73,13 @@ proc/getsensorlevel(A)
|
||||
Miss Chance
|
||||
*/
|
||||
|
||||
//TODO: Integrate defence zones and targeting body parts with the actual organ system, move these into organ definitions.
|
||||
|
||||
//The base miss chance for the different defence zones
|
||||
var/list/global/base_miss_chance = list(
|
||||
"head" = 40,
|
||||
"chest" = 10,
|
||||
"groin" = 20,
|
||||
"l_leg" = 20,
|
||||
"r_leg" = 20,
|
||||
"l_arm" = 20,
|
||||
"r_arm" = 20,
|
||||
"l_hand" = 50,
|
||||
"r_hand" = 50,
|
||||
"l_foot" = 50,
|
||||
"r_foot" = 50,
|
||||
)
|
||||
|
||||
//Used to weight organs when an organ is hit randomly (i.e. not a directed, aimed attack).
|
||||
//Also used to weight the protection value that armour provides for covering that body part when calculating protection from full-body effects.
|
||||
var/list/global/organ_rel_size = list(
|
||||
"head" = 25,
|
||||
"chest" = 70,
|
||||
"groin" = 30,
|
||||
"l_leg" = 25,
|
||||
"r_leg" = 25,
|
||||
"l_arm" = 25,
|
||||
"r_arm" = 25,
|
||||
"l_hand" = 10,
|
||||
"r_hand" = 10,
|
||||
"l_foot" = 10,
|
||||
"r_foot" = 10,
|
||||
)
|
||||
|
||||
/proc/check_zone(zone)
|
||||
if(!zone) return "chest"
|
||||
if(!zone) return BP_TORSO
|
||||
switch(zone)
|
||||
if("eyes")
|
||||
zone = "head"
|
||||
if("mouth")
|
||||
zone = "head"
|
||||
if(O_EYES)
|
||||
zone = BP_HEAD
|
||||
if(O_MOUTH)
|
||||
zone = BP_HEAD
|
||||
return zone
|
||||
|
||||
// Returns zone with a certain probability. If the probability fails, or no zone is specified, then a random body part is chosen.
|
||||
@@ -126,17 +94,17 @@ var/list/global/organ_rel_size = list(
|
||||
var/ran_zone = zone
|
||||
while (ran_zone == zone)
|
||||
ran_zone = pick (
|
||||
organ_rel_size["head"]; "head",
|
||||
organ_rel_size["chest"]; "chest",
|
||||
organ_rel_size["groin"]; "groin",
|
||||
organ_rel_size["l_arm"]; "l_arm",
|
||||
organ_rel_size["r_arm"]; "r_arm",
|
||||
organ_rel_size["l_leg"]; "l_leg",
|
||||
organ_rel_size["r_leg"]; "r_leg",
|
||||
organ_rel_size["l_hand"]; "l_hand",
|
||||
organ_rel_size["r_hand"]; "r_hand",
|
||||
organ_rel_size["l_foot"]; "l_foot",
|
||||
organ_rel_size["r_foot"]; "r_foot",
|
||||
organ_rel_size[BP_HEAD]; BP_HEAD,
|
||||
organ_rel_size[BP_TORSO]; BP_TORSO,
|
||||
organ_rel_size[BP_GROIN]; BP_GROIN,
|
||||
organ_rel_size[BP_L_ARM]; BP_L_ARM,
|
||||
organ_rel_size[BP_R_ARM]; BP_R_ARM,
|
||||
organ_rel_size[BP_L_LEG]; BP_L_LEG,
|
||||
organ_rel_size[BP_R_LEG]; BP_R_LEG,
|
||||
organ_rel_size[BP_L_HAND]; BP_L_HAND,
|
||||
organ_rel_size[BP_R_HAND]; BP_R_HAND,
|
||||
organ_rel_size[BP_L_FOOT]; BP_L_FOOT,
|
||||
organ_rel_size[BP_R_FOOT]; BP_R_FOOT,
|
||||
)
|
||||
|
||||
return ran_zone
|
||||
@@ -564,3 +532,37 @@ proc/is_blind(A)
|
||||
return threatcount
|
||||
|
||||
#undef SAFE_PERP
|
||||
|
||||
|
||||
//TODO: Integrate defence zones and targeting body parts with the actual organ system, move these into organ definitions.
|
||||
|
||||
//The base miss chance for the different defence zones
|
||||
var/list/global/base_miss_chance = list(
|
||||
"head" = 40,
|
||||
"chest" = 10,
|
||||
"groin" = 20,
|
||||
"l_leg" = 20,
|
||||
"r_leg" = 20,
|
||||
"l_arm" = 20,
|
||||
"r_arm" = 20,
|
||||
"l_hand" = 50,
|
||||
"r_hand" = 50,
|
||||
"l_foot" = 50,
|
||||
"r_foot" = 50,
|
||||
)
|
||||
|
||||
//Used to weight organs when an organ is hit randomly (i.e. not a directed, aimed attack).
|
||||
//Also used to weight the protection value that armour provides for covering that body part when calculating protection from full-body effects.
|
||||
var/list/global/organ_rel_size = list(
|
||||
"head" = 25,
|
||||
"chest" = 70,
|
||||
"groin" = 30,
|
||||
"l_leg" = 25,
|
||||
"r_leg" = 25,
|
||||
"l_arm" = 25,
|
||||
"r_arm" = 25,
|
||||
"l_hand" = 10,
|
||||
"r_hand" = 10,
|
||||
"l_foot" = 10,
|
||||
"r_foot" = 10,
|
||||
)
|
||||
Reference in New Issue
Block a user