Removes duplicate code from human/bullet_act

Also moves stun projectile handling up to living/bullet_act, as all the
human specific code has been moved to other procs
This commit is contained in:
mwerezak
2014-08-01 23:53:33 -04:00
parent 63aab94d3c
commit 91d503e209
2 changed files with 13 additions and 29 deletions

View File

@@ -12,21 +12,6 @@ emp_act
var/datum/organ/external/organ = get_organ(check_zone(def_zone))
//Being hit while using a cloaking device
var/obj/item/weapon/cloaking_device/C = locate((/obj/item/weapon/cloaking_device) in src)
if(C && C.active)
C.attack_self(src)//Should shut it off
update_icons()
src << "\blue Your [C.name] was disrupted!"
Stun(2)
//Being hit while using a deadman switch
if(istype(equipped(),/obj/item/device/assembly/signaler))
var/obj/item/device/assembly/signaler/signaler = equipped()
if(signaler.deadman && prob(80))
src.visible_message("\red [src] triggers their deadman's switch!")
signaler.signal()
//Shields
if(check_shields(P.damage, "the [P.name]"))
P.on_hit(src, 2, def_zone)
@@ -56,13 +41,6 @@ emp_act
P.xo = new_x - curloc.x
return -1 // complete projectile permutation
//Tasers
if(istype(P, /obj/item/projectile/beam/stun))
stun_effect_act(0, P.agony, def_zone, P)
src <<"\red You have been hit by [P]!"
del P
return
//Shrapnel
if (P.damage_type == BRUTE)
@@ -84,9 +62,7 @@ emp_act
switch (def_zone)
if("head")
//agony_amount *= 1.25
agony_amount *= 1.50 //Targeting the head does add risk, so it should probably do more damage than average.
//if("l_foot", "r_foot") //TODO
agony_amount *= 1.50
if("l_hand", "r_hand")
var/c_hand
if (def_zone == "l_hand")
@@ -95,8 +71,6 @@ emp_act
c_hand = r_hand
if(c_hand && (stun_amount || agony_amount > 10))
//Not only do you need to guess the correct hand, but you also have a 50% (and increases with distance, in the case of tasers) miss chance when targeting the hands
//Since you can disarm someone by spamming disarm with a 60% success rate, it seems fair to have this be an automatic disarm, even for tasers.
msg_admin_attack("[src.name] ([src.ckey]) was disarmed by a stun effect")
u_equip(c_hand)

View File

@@ -38,6 +38,9 @@
/mob/living/bullet_act(var/obj/item/projectile/P, var/def_zone)
flash_weak_pain()
//Being hit while using a cloaking device
var/obj/item/weapon/cloaking_device/C = locate((/obj/item/weapon/cloaking_device) in src)
if(C && C.active)
C.attack_self(src)//Should shut it off
@@ -45,14 +48,21 @@
src << "\blue Your [C.name] was disrupted!"
Stun(2)
flash_weak_pain()
//Being hit while using a deadman switch
if(istype(equipped(),/obj/item/device/assembly/signaler))
var/obj/item/device/assembly/signaler/signaler = equipped()
if(signaler.deadman && prob(80))
src.visible_message("\red [src] triggers their deadman's switch!")
signaler.signal()
//Stun Beams
if(istype(P, /obj/item/projectile/beam/stun) || istype(P, /obj/item/projectile/bullet/stunshot))
stun_effect_act(0, P.agony, def_zone, P)
src <<"\red You have been hit by [P]!"
del P
return
//Armor
var/absorb = run_armor_check(def_zone, P.flag)
var/proj_sharp = is_sharp(P)
var/proj_edge = has_edge(P)