IPC balance changes

This commit is contained in:
SteelSlayer
2020-05-15 03:44:55 -05:00
parent d8134fd328
commit a508b42b4e
12 changed files with 57 additions and 52 deletions
+1 -1
View File
@@ -54,7 +54,7 @@
var/obj/item/organ/external/BP = X
var/brutedamage = BP.brute_dam
if(BP.is_robotic() && !isSynthetic())
if(BP.is_robotic())
continue
//We want an accurate reading of .len
-29
View File
@@ -253,35 +253,6 @@
status &= ~ORGAN_SPLINTED
status |= ORGAN_ROBOT
/obj/item/organ/external/emp_act(severity)
if(!is_robotic() || emp_proof)
return
if(tough)
switch(severity)
if(1)
receive_damage(0, 5.5)
if(owner)
owner.Stun(10)
if(2)
receive_damage(0, 2.8)
if(owner)
owner.Stun(5)
else
switch(severity)
if(1)
receive_damage(0, 20)
if(2)
receive_damage(0, 7)
/obj/item/organ/internal/emp_act(severity)
if(!is_robotic() || emp_proof)
return
switch(severity)
if(1)
receive_damage(20, 1)
if(2)
receive_damage(7, 1)
/obj/item/organ/proc/shock_organ(intensity)
return
@@ -41,6 +41,9 @@
var/list/obj/item/organ/external/children
var/list/convertable_children = list()
// Does the organ take reduce damage from EMPs? IPC limbs get this by default
var/emp_resistant = FALSE
// Internal organs of this body part
var/list/internal_organs = list()
@@ -256,6 +259,34 @@
return update_icon()
/obj/item/organ/external/emp_act(severity)
if(!is_robotic() || emp_proof)
return
if(tough) // Augmented limbs
switch(severity)
if(1)
receive_damage(0, 5.5)
if(owner)
owner.Stun(10)
if(2)
receive_damage(0, 2.8)
if(owner)
owner.Stun(5)
else if(emp_resistant) // IPC limbs
switch(severity)
if(1)
// 5.28 (9 * 0.66 burn_mod) burn damage, 65.34 damage with 11 limbs.
receive_damage(0, 9)
if(2)
// 3.63 (5 * 0.66 burn_mod) burn damage, 39.93 damage with 11 limbs.
receive_damage(0, 5.5)
else // Basic prosthetic limbs
switch(severity)
if(1)
receive_damage(0, 20)
if(2)
receive_damage(0, 7)
/*
This function completely restores a damaged organ to perfect condition.
*/
@@ -73,6 +73,15 @@
A.Remove(M)
return src
/obj/item/organ/internal/emp_act(severity)
if(!is_robotic() || emp_proof)
return
switch(severity)
if(1)
receive_damage(20, 1)
if(2)
receive_damage(7, 1)
/obj/item/organ/internal/replaced(var/mob/living/carbon/human/target)
insert(target)
@@ -5,6 +5,7 @@
min_broken_damage = 30
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/head/ipc/New(mob/living/carbon/holder, datum/species/species_override = null)
..(holder, /datum/species/machine) // IPC heads need to be explicitly set to this since you can print them
@@ -13,6 +14,7 @@
/obj/item/organ/external/chest/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/chest/ipc/New()
..()
@@ -21,6 +23,7 @@
/obj/item/organ/external/groin/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/groin/ipc/New()
..()
@@ -29,6 +32,7 @@
/obj/item/organ/external/arm/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/arm/ipc/New()
..()
@@ -37,6 +41,7 @@
/obj/item/organ/external/arm/right/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/arm/right/ipc/New()
..()
@@ -45,6 +50,7 @@
/obj/item/organ/external/leg/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/leg/ipc/New()
..()
@@ -53,6 +59,7 @@
/obj/item/organ/external/leg/right/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/leg/right/ipc/New()
..()
@@ -61,6 +68,7 @@
/obj/item/organ/external/foot/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/foot/ipc/New()
..()
@@ -69,6 +77,7 @@
/obj/item/organ/external/foot/right/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/foot/right/ipc/New()
..()
@@ -77,6 +86,7 @@
/obj/item/organ/external/hand/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/hand/ipc/New()
..()
@@ -85,6 +95,7 @@
/obj/item/organ/external/hand/right/ipc
encased = null
status = ORGAN_ROBOT
emp_resistant = TRUE
/obj/item/organ/external/hand/right/ipc/New()
..()