Merge pull request #898 from Neerti/2/4/2016_emp_tweaks

EMP tweaks/fixes
This commit is contained in:
Zuhayr
2016-02-10 10:03:06 +10:30
11 changed files with 70 additions and 30 deletions
@@ -139,19 +139,6 @@ emp_act
if(.) return
return 0
/mob/living/carbon/human/emp_act(severity)
for(var/obj/O in src)
if(!O) continue
O.emp_act(severity)
for(var/obj/item/organ/external/O in organs)
O.emp_act(severity)
for(var/obj/item/organ/I in O.internal_organs)
if(!(I.status & ORGAN_ROBOT))
continue
I.emp_act(severity)
..()
//Returns 1 if the attack hit, 0 if it missed.
/mob/living/carbon/human/proc/attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone)
if(!I || !user) return 0
@@ -97,6 +97,8 @@
else //Not stunned.
src.stat = 0
confused = max(0, confused - 1)
else //Dead.
src.blinded = 1
src.stat = 2
@@ -1,6 +1,8 @@
/mob/living/silicon/robot/Login()
..()
regenerate_icons()
update_hud()
show_laws(0)
winset(src, null, "mainwindow.macro=borgmacro hotkey_toggle.is-checked=false input.focus=true input.background-color=#D3B5B5")
@@ -147,3 +147,7 @@
burn -= (picked.electronics_damage - burn_was)
parts -= picked
/mob/living/silicon/robot/emp_act(severity)
uneq_all()
..() //Damage is handled at /silicon/ level.
+5 -5
View File
@@ -63,13 +63,13 @@
switch(severity)
if(1)
src.take_organ_damage(0,20,emp=1)
Stun(rand(5,10))
confused = (min(confused + 5, 30))
if(2)
src.take_organ_damage(0,10,emp=1)
Stun(rand(1,5))
flick("noise", src:flash)
src << "\red <B>*BZZZT*</B>"
src << "\red Warning: Electromagnetic pulse detected."
confused = (min(confused + 2, 30))
flick("noise", src.flash)
src << "<span class='danger'><B>*BZZZT*</B></span>"
src << "<span class='danger'>Warning: Electromagnetic pulse detected.</span>"
..()
/mob/living/silicon/stun_effect_act(var/stun_amount, var/agony_amount)
+4 -8
View File
@@ -258,14 +258,10 @@ var/list/organ_cache = list()
if(!(status & ORGAN_ROBOT))
return
switch (severity)
if (1.0)
take_damage(20)
return
if (2.0)
take_damage(7)
return
if(3.0)
take_damage(3)
if (1)
take_damage(5)
if (2)
take_damage(2)
/obj/item/organ/proc/removed(var/mob/living/user)
+9
View File
@@ -89,6 +89,15 @@
return ..()
/obj/item/organ/external/emp_act(severity)
if(!(status & ORGAN_ROBOT))
return
switch (severity)
if (1)
take_damage(8)
if (2)
take_damage(4)
/obj/item/organ/external/attack_self(var/mob/user)
if(!contents.len)
return ..()
+1 -1
View File
@@ -136,7 +136,7 @@
var/mob/living/silicon/robot/R = loc
severity *= R.cell_emp_mult
charge -= maxcharge / severity
charge -= charge / severity
if (charge < 0)
charge = 0
..()