mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
EMP deals burn instead of brute to silicons, and bypasses robot armour
This commit is contained in:
@@ -241,7 +241,7 @@
|
|||||||
src.updatehealth()
|
src.updatehealth()
|
||||||
|
|
||||||
// damage ONE external organ, organ gets randomly selected from damaged ones.
|
// damage ONE external organ, organ gets randomly selected from damaged ones.
|
||||||
/mob/living/proc/take_organ_damage(var/brute, var/burn)
|
/mob/living/proc/take_organ_damage(var/brute, var/burn, var/emp=0)
|
||||||
if(status_flags & GODMODE) return 0 //godmode
|
if(status_flags & GODMODE) return 0 //godmode
|
||||||
adjustBruteLoss(brute)
|
adjustBruteLoss(brute)
|
||||||
adjustFireLoss(burn)
|
adjustFireLoss(burn)
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
if(bruteloss<0) bruteloss = 0
|
if(bruteloss<0) bruteloss = 0
|
||||||
if(fireloss<0) fireloss = 0
|
if(fireloss<0) fireloss = 0
|
||||||
|
|
||||||
/mob/living/silicon/robot/drone/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0)
|
/mob/living/silicon/robot/drone/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0, var/emp = 0)
|
||||||
take_overall_damage(brute,burn)
|
take_overall_damage(brute,burn)
|
||||||
|
|
||||||
/mob/living/silicon/robot/drone/heal_organ_damage(var/brute, var/burn)
|
/mob/living/silicon/robot/drone/heal_organ_damage(var/brute, var/burn)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
var/datum/robot_component/picked = pick(parts)
|
var/datum/robot_component/picked = pick(parts)
|
||||||
picked.heal_damage(brute,burn)
|
picked.heal_damage(brute,burn)
|
||||||
|
|
||||||
/mob/living/silicon/robot/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0, var/edge = 0)
|
/mob/living/silicon/robot/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0, var/edge = 0, var/emp = 0)
|
||||||
var/list/components = get_damageable_components()
|
var/list/components = get_damageable_components()
|
||||||
if(!components.len)
|
if(!components.len)
|
||||||
return
|
return
|
||||||
@@ -84,10 +84,11 @@
|
|||||||
burn -= absorb_burn
|
burn -= absorb_burn
|
||||||
src << "\red Your shield absorbs some of the impact!"
|
src << "\red Your shield absorbs some of the impact!"
|
||||||
|
|
||||||
var/datum/robot_component/armour/A = get_armour()
|
if(!emp)
|
||||||
if(A)
|
var/datum/robot_component/armour/A = get_armour()
|
||||||
A.take_damage(brute,burn,sharp,edge)
|
if(A)
|
||||||
return
|
A.take_damage(brute,burn,sharp,edge)
|
||||||
|
return
|
||||||
|
|
||||||
var/datum/robot_component/C = pick(components)
|
var/datum/robot_component/C = pick(components)
|
||||||
C.take_damage(brute,burn,sharp,edge)
|
C.take_damage(brute,burn,sharp,edge)
|
||||||
|
|||||||
@@ -56,10 +56,10 @@
|
|||||||
/mob/living/silicon/emp_act(severity)
|
/mob/living/silicon/emp_act(severity)
|
||||||
switch(severity)
|
switch(severity)
|
||||||
if(1)
|
if(1)
|
||||||
src.take_organ_damage(20)
|
src.take_organ_damage(0,20,emp=1)
|
||||||
Stun(rand(5,10))
|
Stun(rand(5,10))
|
||||||
if(2)
|
if(2)
|
||||||
src.take_organ_damage(10)
|
src.take_organ_damage(0,10,emp=1)
|
||||||
Stun(rand(1,5))
|
Stun(rand(1,5))
|
||||||
flick("noise", src:flash)
|
flick("noise", src:flash)
|
||||||
src << "\red <B>*BZZZT*</B>"
|
src << "\red <B>*BZZZT*</B>"
|
||||||
|
|||||||
Reference in New Issue
Block a user