diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index f7d13de37c..8c88f0d4c0 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -49,7 +49,7 @@ return 0 if(!(P.original == src && P.firer == src)) //can't block or reflect when shooting yourself - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) + if(P.is_reflectable) if(check_reflect(def_zone)) // Checks if you've passed a reflection% check visible_message("The [P.name] gets reflected by [src]!", \ "The [P.name] gets reflected by [src]!") diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index aa0f7ffc11..c28c2458f7 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -40,6 +40,7 @@ var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb var/projectile_type = /obj/item/projectile var/range = 50 //This will de-increment every step. When 0, it will delete the projectile. + var/is_reflectable = FALSE // Can it be reflected or not? //Effects var/stun = 0 var/knockdown = 0 diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 61e109b454..574f713e3f 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -13,6 +13,7 @@ light_color = LIGHT_COLOR_RED ricochets_max = 50 //Honk! ricochet_chance = 80 + is_reflectable = TRUE /obj/item/projectile/beam/laser diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index a792a37c37..57a73633cd 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -4,6 +4,7 @@ damage = 0 damage_type = BURN flag = "energy" + is_reflectable = TRUE /obj/item/projectile/energy/chameleon nodamage = TRUE