diff --git a/code/modules/halo/weapons/ammo_7-62mm.dm b/code/modules/halo/weapons/ammo_7-62mm.dm index 179afef8f0809..02727dc90c072 100644 --- a/code/modules/halo/weapons/ammo_7-62mm.dm +++ b/code/modules/halo/weapons/ammo_7-62mm.dm @@ -45,7 +45,7 @@ alpha = 160 /obj/item/ammo_casing/m120 - desc = "A 7.62mm HP bullet casing." + desc = "A 7.62mm +P bullet casing." caliber = "7.62mmdmr" projectile_type = /obj/item/projectile/bullet/m120 @@ -53,7 +53,8 @@ damage = 35 armor_penetration = 40 penetrating = 1 + pen_limited = 1 shield_damage = 15 tracer_type = /obj/effect/projectile/dmr_trail tracer_delay_time = 0.5 SECONDS - steps_between_delays = 3 + steps_between_delays = 5 diff --git a/code/modules/halo/weapons/covenant/ammo.dm b/code/modules/halo/weapons/covenant/ammo.dm index ed80c435faf4e..f9a3a3301a964 100644 --- a/code/modules/halo/weapons/covenant/ammo.dm +++ b/code/modules/halo/weapons/covenant/ammo.dm @@ -296,8 +296,10 @@ tracer_delay_time = 0.5 SECONDS invisibility = 101 max_track_steps = 1 + penetrating = 1 + pen_limited = 1 muzzle_type = /obj/effect/projectile/muzzle/cov_red - steps_between_delays = 3 + steps_between_delays = 5 /obj/effect/projectile/bullet/covenant/needles icon = 'code/modules/halo/weapons/icons/Covenant_Projectiles.dmi' diff --git a/code/modules/halo/weapons/forerunner/ammo.dm b/code/modules/halo/weapons/forerunner/ammo.dm index 065c1496270f9..e7655b37dec82 100644 --- a/code/modules/halo/weapons/forerunner/ammo.dm +++ b/code/modules/halo/weapons/forerunner/ammo.dm @@ -41,6 +41,7 @@ damage = 25 armor_penetration = 15 penetrating = 1 + pen_limited = 1 /obj/item/projectile/bullet/pellet/shotgun/boltshot name = "hardlight shrapnel" @@ -48,6 +49,7 @@ icon_state = "boltshot_ammo" fire_sound = 'code/modules/halo/sounds/boltshot_sg_fire.ogg' penetrating = 1 + pen_limited = 1 /obj/item/ammo_magazine/binaryrifle name = "Z-750 SASR magazine" @@ -108,4 +110,5 @@ damage = 20 armor_penetration = 20 penetrating = 1 + pen_limited = 1 shield_damage = 5 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index c506461329e7f..6d031a1fab40c 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -34,6 +34,7 @@ var/check_armour = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid var/projectile_type = /obj/item/projectile var/penetrating = 0 //If greater than zero, the projectile will pass through dense objects as specified by on_penetrate(). If 999, always penetrates. + var/pen_limited = 0 //Only penetrate non-wall objects. var/shield_damage = 0 //Damage applied soley to shields. If this damage alone breaks a shield, the projectile will not encounter the usual shield gating. var/kill_count = 50 //This will de-increment every process(). When 0, it will delete the projectile. //Effects diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 4d0a0fa66ad61..d09b27fe41c8a 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -44,7 +44,7 @@ return 0 return 1 - if(penetrating > 0) + if(penetrating > 0 && (pen_limited == 0 || (pen_limited == 1 && !isturf(A)))) if(A.opacity) //display a message so that people on the other side aren't so confused A.visible_message("\The [src] pierces through \the [A]!")