Adds emp interaction for simple mobs and some pra robots tweaks (#7314)

-ranged pra robots now leave behind empty casings after firing
-pra robots will now take honorary membership cards in consideration when chosing targets
-adds emp damage to synthetic simple animals
This commit is contained in:
Alberyk
2019-11-04 04:11:17 -03:00
committed by Erki
parent 179eaf0dfd
commit 878f99f8a0
7 changed files with 35 additions and 4 deletions

View File

@@ -246,8 +246,10 @@ mob/living/simple_animal/hostile/hitby(atom/movable/AM as mob|obj,var/speed = TH
else
Shoot(target, src.loc, src)
if(casingtype)
new casingtype(loc)
new casingtype(get_turf(src))
playsound(src, "sound/weapons/casingdrop[rand(1,5)].ogg", 50, 1)
stance = HOSTILE_STANCE_IDLE
target_mob = null

View File

@@ -19,6 +19,8 @@
health = 300
maxHealth = 300
destroy_surroundings = FALSE
universal_speak = TRUE
universal_understand = TRUE
@@ -67,7 +69,7 @@
var/mob/living/carbon/human/H = L
if(H.w_uniform)
var/obj/item/clothing/under/suit = H.w_uniform
if(locate(/obj/item/clothing/accessory/hadii_pin) in suit.accessories)
if((locate(/obj/item/clothing/accessory/hadii_pin) in suit.accessories) || (locate(/obj/item/clothing/accessory/badge/hadii_card) in suit.accessories))
return FALSE
if(!L.stat)
@@ -108,7 +110,7 @@
projectilesound = 'sound/weapons/gunshot/gunshot_saw.ogg'
projectiletype = /obj/item/projectile/bullet/rifle/a762
casingtype = /obj/item/ammo_casing/a762
casingtype = /obj/item/ammo_casing/a762/spent
/mob/living/simple_animal/hostile/republicon/ranged/Initialize()
. = ..()

View File

@@ -71,6 +71,9 @@
else
return ..()
/mob/living/simple_animal/hostile/retaliate/malf_drone/isSynthetic()
return TRUE
//self repair systems have a chance to bring the drone back to life
/mob/living/simple_animal/hostile/retaliate/malf_drone/Life()

View File

@@ -182,4 +182,4 @@
stance = HOSTILE_STANCE_TIRED
addtimer(CALLBACK(src, .proc/wakeup), 150)
if(severity == 1.0)
apply_damage(5)
apply_damage(5)

View File

@@ -772,3 +772,17 @@ mob/living/simple_animal/bullet_act(var/obj/item/projectile/Proj)
return TRUE
else
return FALSE
/mob/living/simple_animal/emp_act(severity)
if(!isSynthetic())
return
switch(severity)
if(1)
adjustFireLoss(rand(20, 25))
if(2)
adjustFireLoss(rand(10, 15))
if(3)
adjustFireLoss(rand(5, 10))
if(4)
adjustFireLoss(rand(3, 5))