diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 445d06a802..b131e0b558 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -173,7 +173,7 @@ for(var/obj/item/organ/external/EO in organs) if(EO.brute_dam || EO.burn_dam) - output += "[EO.name] - [EO.burn_dam + EO.brute_dam > ROBOLIMB_REPAIR_CAP ? "Heavy Damage" : "Light Damage"]\n" + output += "[EO.name] - [EO.burn_dam + EO.brute_dam > EO.min_broken_damage ? "Heavy Damage" : "Light Damage"]\n" //VOREStation Edit - Makes robotic limb damage scalable else output += "[EO.name] - OK\n" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 4aaae08daf..307fc537ee 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -96,6 +96,17 @@ cost = -1 var_changes = list("flash_mod" = 2.0) +/datum/trait/hollow + name = "Hollow Bones/Aluminum Alloy" + desc = "Your bones and robot limbs are much easier to break." + cost = -2 //I feel like this should be higher, but let's see where it goes + +/datum/trait/hollow/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + for(var/obj/item/organ/external/O in H.organs) + O.min_broken_damage *= 0.5 + O.min_bruised_damage *= 0.5 + /datum/trait/lightweight name = "Lightweight" desc = "Your light weight and poor balance make you very susceptible to unhelpful bumping. Think of it like a bowling ball versus a pin." diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index df11357e8b..2c9626ee7e 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -400,7 +400,7 @@ user << "Nothing to fix!" return 0 - if(damage_amount >= ROBOLIMB_REPAIR_CAP) + if(damage_amount >= min_broken_damage) //VOREStation Edit - Makes robotic limb damage scalable user << "The damage is far too severe to patch over externally." return 0 @@ -1085,6 +1085,7 @@ Note that amputating the affected organ does in fact remove the infection from t dislocated = -1 cannot_break = 1 + min_broken_damage = ROBOLIMB_REPAIR_CAP //VOREStation Addition - Makes robotic limb damage scalable remove_splint() get_icon() unmutate() @@ -1133,7 +1134,7 @@ Note that amputating the affected organ does in fact remove the infection from t return !(status & (ORGAN_MUTATED|ORGAN_DEAD)) /obj/item/organ/external/proc/is_malfunctioning() - return ((robotic >= ORGAN_ROBOT) && (brute_dam + burn_dam) >= 25 && prob(brute_dam + burn_dam)) + return ((robotic >= ORGAN_ROBOT) && (brute_dam + burn_dam) >= min_broken_damage*0.83 && prob(brute_dam + burn_dam)) //VOREStation Edit - Makes robotic limb damage scalable /obj/item/organ/external/proc/embed(var/obj/item/weapon/W, var/silent = 0) if(!owner || loc != owner)